una txt texto tabuladores separado por lineas linea leer especifica contar como comas caracter archivo java bufferedreader filereader

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>