8 Stimmen

Was sind die besten/einfachsten Klassen, die zum Lesen von Dateien in Java verwendet werden?

Ich interessiere mich für einfache Linienverarbeitung.

8voto

Itay Maman Punkte 29121

Scanner:

for(Scanner sc = new Scanner(new File("my.file")); sc.hasNext(); ) {
  String line = sc.nextLine();
  ... // do something with line
}

7voto

Codemwnci Punkte 52604

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.

4voto

limc Punkte 38266

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();
}

2voto

Jonik Punkte 77106

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.

1voto

Pablojim Punkte 8312

Apache Commons ist immer ein guter Startpunkt.

Ver http://commons.apache.org/io/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X