txt - leer un archivo en java
¿La forma más rápida de leer un archivo línea por línea con 2 conjuntos de cadenas en cada línea? (3)
¿Cuál es la forma más rápida en que puedo leer línea por línea con cada línea que contiene dos cadenas? Un ejemplo de archivo de entrada sería:
Fastest, Way
To, Read
One, File
Line, By Line
.... can be a large file
Siempre hay dos conjuntos de cadenas en cada línea que necesito, incluso si hay espacios entre las cadenas, por ejemplo, "Por línea"
Actualmente estoy usando
FileReader a = new FileReader(file);
BufferedReader br = new BufferedReader(a);
String line;
line = br.readLine();
long b = System.currentTimeMillis();
while(line != null){
¿Es eso lo suficientemente eficiente o hay una forma más eficiente de usar la API de JAVA estándar (no hay bibliotecas externas, por favor) Se agradece cualquier ayuda Gracias!
Depende a qué te refieres cuando dices "eficiente". Desde el punto de vista del rendimiento está bien. Si está preguntando por el estilo y tamaño del código, casi siempre lo hago con una pequeña corrección:
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line = br.readLine()) != null) {
// do something with line.
}
Para leer desde STDIN, Java 6 te ofrece otra manera. Usa la consola de clase y sus métodos.
readLine()
y readLine(fmt, Object... args)
Si quieres separar dos conjuntos de String, puedes hacerlo de esta manera:
BufferedReader in = new BufferedReader(new FileReader(file));
String str;
while ((str = in.readLine()) != null) {
String[] strArr = str.split(",");
System.out.println(strArr[0] + " " + strArr[1]);
}
in.close();
import java.util.*;
import java.io.*;
public class Netik {
/* File text is
* this, is
* a, test,
* of, the
* scanner, I
* wrote, for
* Netik, on
* Stack, Overflow
*/
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(new File("test.txt"));
sc.useDelimiter("(//s|,)"); // this means whitespace or comma
while(sc.hasNext()) {
String next = sc.next();
if(next.length() > 0)
System.out.println(next);
}
}
}
El resultado:
C:/Documents and Settings/glowcoder/My Documents>java Netik
this
is
a
test
of
the
scanner
I
wrote
for
Netik
on
Stack
Overflow
C:/Documents and Settings/glowcoder/My Documents>