Pregunta lea el archivo completo sin usar el bucle en java [duplicado]


Posible duplicado:
Cómo crear una cadena de Java a partir del contenido de un archivo
Archivo de texto completo a una cadena en Java 

Estoy tratando de leer el contenido de un archivo usando FileReader. Pero quiero leer el archivo sin leer una línea por línea. ¿Es posible leer todo el archivo sin loop? Estoy usando el siguiente código

 try
 {
     File ff=new File("abc.txt");
     FileReader fr=new FileReader(ff);

     String s;
     while(br.read()!=-1)
     {
          s=br.readLine();
     }
 }

 catch(Exception ex)
 {
     ex.printStackTrace();
 }

74
2018-01-05 07:26


origen


Respuestas:


Si el archivo es pequeña, puedes leer toda la información una vez:

File file = new File("a.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();

String str = new String(data, "UTF-8");

106
2018-01-05 07:40



Solución Java 7 one line

List<String> lines = Files.readAllLines(Paths.get("file"), StandardCharsets.UTF_8);

o

 String text = new String(Files.readAllBytes(Paths.get("file")), StandardCharsets.UTF_8);

141
2018-01-05 07:36



Si está utilizando Java 5/6, puede usar Apache Commons IO para leer el archivo en la cadena. La clase org.apache.commons.io.FileUtils Contais varios métodos para leer archivos.

p.ej. usando el método FileUtils#readFileToString:

File file = new File("abc.txt");
String content = FileUtils.readFileToString(file);

28
2018-01-05 07:38



Puedes intentar usar Escáner si está utilizando JDK5 o superior.

Scanner scan = new Scanner(file);  
scan.useDelimiter("\\Z");  
String content = scan.next(); 

O también puedes usar Guayaba

String data = Files.toString(new File("path.txt"), Charsets.UTF8);

26
2018-01-05 07:30