En Java, si sabe con certeza que un archivo es muy pequeño, puede usar el método readBytes()
para leer el contenido de una vez en lugar de leerlo línea por línea o usar el búfer.¿Cómo leer el contenido del archivo en una variable de una vez?
Sólo me preguntaba en shell script, sé que podemos hacer algo como:
while read line
do
echo $line
LINE = $line
done < "test.file"
echo $LINE
Si mi test.file es como:
testline1
testline2
testline3
Esto sólo me da la última línea para $LINE
. $LINE
contiene "testline3".
Mi pregunta es: ¿cómo puedo leer todo el archivo con varias líneas en una sola variable, así que puedo obtener $LINE="testline1\ntestline2\ntestline3"
?
datos (archivo gato) '= $', ¿pero Por qué querrías? ¡Solo lea el archivo cada vez que necesite el contenido! –
Dos cosas que no están directamente relacionadas con su pregunta: primero, 'LINE = $ line' en realidad no funciona; el espacio alrededor del signo igual lo invalida. En segundo lugar, si está manipulando texto que desea conservar literalmente, debe establecer 'IFS' nulo para sus llamadas de lectura (de lo contrario, se numerará el espacio en blanco de cada línea) y pasar la opción' -r' a 'leer' y la opción '-E' para' echo' (de lo contrario, cualquier barra invertida en su archivo estropeará las cosas). Ver mi respuesta a continuación, por ejemplo. –
@MarkReed: nunca he entendido el propósito de ''E' ya que ese es el comportamiento predeterminado de Bash para' echo'. –