segunda - leer un archivo de texto separado por comas en java
Usando BufferedReader para leer el archivo de texto (8)
Este es el problema:
while (br.readLine() != null) {
System.out.println(br.readLine());
}
Tiene dos llamadas a readLine
: la primera solo verifica que haya una línea (pero la lee y la descarta) y la segunda lee la línea siguiente . Usted quiere:
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
Ahora solo estamos llamando a readLine()
una vez por iteración de bucle, y usando la línea que hemos leído tanto para "¿hemos terminado?" e partes de "imprimir la línea".
Tengo problemas con el uso del BufferedReader
Quiero imprimir las 6 líneas de un archivo de texto:
public class Reader {
public static void main(String[]args) throws IOException{
FileReader in = new FileReader("C:/test.txt");
BufferedReader br = new BufferedReader(in);
while (br.readLine() != null) {
System.out.println(br.readLine());
}
in.close();
}
Ahora, de lo que puedo deducir cada vez que llamo al método readLine () avanza automáticamente a la siguiente línea.
Así que no puedo usar la condición br.readLine ()! = Null ya que ya avanzará una línea y obtendré el resultado:
Line 2
Line 4
Line 6
¿Qué condición utilizo para verificar si todavía hay una nueva línea en el campo de texto?
¡Gracias por adelantado!
Lees la line
través del ciclo ya través del ciclo lees la siguiente línea, así que solo léelo en el ciclo while
String s;
while ((s=br.readLine()) != null) {
System.out.println(s);
}
Puede asignar el resultado de br.readLine()
a una variable y usarlo tanto para el procesamiento como para la verificación, de esta forma:
String line = br.readLine();
while (line != null) { // You might also want to check for empty?
System.out.println(line);
line = br.readLine();
}
Quizás te refieres a esto:
public class Reader {
public static void main(String[]args) throws IOException{
FileReader in = new FileReader("C:/test.txt");
BufferedReader br = new BufferedReader(in);
String line = br.readLine();
while (line!=null) {
System.out.println(line);
line = br.readLine();
}
in.close();
}
Tratar:
String text= br.readLine();
while (text != null)
{
System.out.println(text);
text=br.readLine();
}
in.close();
o
public String getFileStream(final String inputFile) {
String result = "";
Scanner s = null;
try {
s = new Scanner(new BufferedReader(new FileReader(inputFile)));
while (s.hasNext()) {
result = result + s.nextLine();
}
} catch (final IOException ex) {
ex.printStackTrace();
} finally {
if (s != null) {
s.close();
}
}
return result;
}
Esto tiene la primera línea también.
puedes almacenarlo en una matriz y luego usar la línea que quieras ... este es el fragmento de código que he usado para leer la línea del archivo y almacenarla en una matriz de cadenas, espero que te sea útil :)
public class user {
public static void main(String x[]) throws IOException{
BufferedReader b=new BufferedReader(new FileReader("<path to file>"));
String[] user=new String[30];
String line="";
while ((line = b.readLine()) != null) {
user[i]=line;
System.out.println(user[1]);
i++;
}
}
}
private void readFile() throws Exception {
AsynchronousFileChannel input=AsynchronousFileChannel.open(Paths.get("E:/dicom_server_storage/abc.txt"),StandardOpenOption.READ);
ByteBuffer buffer=ByteBuffer.allocate(1024);
input.read(buffer,0,null,new CompletionHandler<Integer,Void>(){
@Override public void completed( Integer result, Void attachment){
System.out.println("Done reading the file.");
}
@Override public void failed( Throwable exc, Void attachment){
System.err.println("An error occured:" + exc.getMessage());
}
}
);
System.out.println("This thread keeps on running");
Thread.sleep(100);
}