¿Hay alguna manera de colocar un BufferedReader en una cadena en una sola toma, en lugar de línea por línea? Aquí es lo que tengo hasta ahora:¿Cómo se pone el contenido de un BufferedReader en una cadena?
BufferedReader reader = null;
try
{
reader = read(filepath);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
String line = null;
String feed = null;
try
{
line = reader.readLine();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
while (line != null)
{
//System.out.println(line);
try
{
line = reader.readLine();
feed += line;
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(feed);
No tengo ni idea de lo que es el tamaño, podría ser de cualquier tamaño realmente ... gracias por la respuesta de todos modos .. – BigBug
Esta es en realidad la mejor solución sin usar otras bibliotecas. Desde la API: "Si la' primera lectura 'en la secuencia subyacente devuelve -1 para indicar el final del archivo, este método 'devuelve -1'. De lo contrario, este método devuelve la cantidad de caracteres realmente leídos." Así es como lo usa: http://pastebin.com/RvGwKLuC – bezmax
Para explicar un poco más: BufferedReader se ajusta a otro lector. Cuando llamas 'leer (char [], int, int)' llena su buffer con llamadas secuenciales a 'read(): int' del lector subyacente. Cuando se llena el búfer interno, obtiene una parte y se inserta en el conjunto dado. Entonces, la API dice que si FIRST de esas llamadas de lectura subyacentes devolvió '-1' - entonces este método también devuelve' -1', ya que ES el final de la transmisión. De lo contrario (por ejemplo, si una llamada de lectura tuvo éxito, y la segunda devolvió '-1') - aún devolverá el número de caracteres que se leyeron. – bezmax