Ich interessiere mich für einfache Linienverarbeitung.
Antworten
Zu viele Anzeigen?Werfen Sie einen Blick auf die Scanner Klasse.
Es wurde in Java 5 hinzugefügt, um das Lesen von Strings und Dateien viel einfacher zu machen, als die alten FileReaders und FileInputStream-Ketten (nicht mehr new BufferedReader(new FileReader())
nur um zu einem readLine
Methode).
In der Klasse Scanner können Sie mit der nextLine
Methode, um eine Zeile nach der anderen zu lesen, aber es gibt auch viele util-Methoden, um Primitive und reguläre Ausdrücke in der Datei zu finden.
Sie können verwenden BufferedReader
etwa so:-
try {
BufferedReader input = new BufferedReader(new FileReader(new File("c:\\test.txt")));
try {
String line = null;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
} finally {
input.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
Wenn Sie bereit sind, die Dienste von Bibliotheken von Drittanbietern dann werden Hilfsklassen wie Files
de Guave o FileUtils
de Apache Commons IO machen das Lesen von Dateien sehr einfach.
Beispiele unten (wo File file = new File("path/to/file.txt")
) alle Zeilen einer Textdatei in eine Liste zu lesen und die gesamte Datei in einen String zu lesen.
Guave:
List<String> lines = Files.readLines(file, Charsets.UTF_8);
String contents = Files.toString(file, Charsets.UTF_8);
Apache Commons IO:
List<String> lines = FileUtils.readLines(file, "UTF-8");
String contents = FileUtils.readFileToString(file, "UTF-8")
Meine Empfehlung (Stand 2013) lautet Guave Es handelt sich um eine moderne, saubere und aktiv gepflegte Bibliothek. Sie ist im Allgemeinen von höherer Qualität als die Apache Commons-Bibliothek.
Natürlich wäre es nicht sinnvoll, Guava nur zu diesem Zweck hinzuzufügen, da es eine relativ große Bibliothek ist. Auf der anderen Seite, pas Die Verwendung von Guava in einem Java-Projekt wäre heute IMO dumm :-)
Zugegebenermaßen bietet das JDK nun einigermaßen angemessene Werkzeuge ( Scanner ) für diesen speziellen Zweck; die Verwendung einer Drittanbieter-Lib zum Lesen von Dateien war eher gerechtfertigt, wenn etwas wie dies war die Alternative.
- See previous answers
- Weitere Antworten anzeigen