Wenn Sie in Java sicher sind, dass eine Datei sehr klein ist, können Sie die Methode readBytes()
verwenden, um den Inhalt auf einmal zu lesen, anstatt ihn Zeile für Zeile oder mit Puffer zu lesen.Wie liest man den Dateiinhalt auf einmal in eine Variable?
Just in Shell-Skript fragen, ich weiß, wir so etwas wie tun:
while read line
do
echo $line
LINE = $line
done < "test.file"
echo $LINE
Wenn mein test.file wie ist:
testline1
testline2
testline3
Das gibt mir nur die letzte Zeile zu $LINE
. $LINE
enthält "testline3".
Meine Frage ist: Wie kann ich die ganze Datei mit mehreren Zeilen in eine einzige Variable lesen, so kann ich bekommen?
'DATA = $ (cat-Datei)', Aber warum willst du das? Lies einfach die Datei, wann immer du den Inhalt brauchst! –
Zwei Dinge, die nicht direkt mit Ihrer Frage zusammenhängen: Erstens funktioniert 'LINE = $ line' nicht wirklich; Der Raum um das Gleichheitszeichen macht es ungültig. Zweitens, wenn Sie Text manipulieren, den Sie im wahrsten Sinne des Wortes erhalten wollen, sollten Sie 'IFS' für Ihre Leseaufrufe auf Null setzen (andernfalls werden führende Leerzeichen auf jeder Zeile mit einem Atomkern versehen) und die' -r'-Option an 'read' übergeben und die '-E' Option zum' echo' (sonst werden alle umgekehrten Schrägstriche in Ihrer Datei die Sache durcheinander bringen). Sehen Sie meine Antwort unten zum Beispiel. –
@MarkReed: Ich habe nie den Zweck von '-E' verstanden, da dies Bashs Standardverhalten für' echo' ist. –