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

7

Ich bin an einer einfachen Zeilenverarbeitung interessiert.

    
John Assymptoth 05.02.2011, 19:08
quelle

7 Antworten

7

Scanner:

%Vor%     
Itay Maman 05.02.2011, 19:11
quelle
7

Sehen Sie sich die Klasse Scanner an.

Es wurde in Java 5 hinzugefügt, um das Lesen von Strings und Dateien wesentlich einfacher zu machen als die alten FileReaders und FileInputStream Ketten (nicht mehr new BufferedReader(new FileReader()) , nur um zu einer readLine -Methode zu gelangen).

In der Klasse Scanner können Sie die Methode nextLine verwenden, um jeweils eine Zeile zu lesen, aber es gibt auch viele util-Methoden zum Suchen von Primitiven und regulären Ausdrücken in der Datei.

    
Codemwnci 05.02.2011 19:10
quelle
4

Sie können BufferedReader verwenden, etwa so: -

%Vor%     
limc 05.02.2011 19:12
quelle
2

Wenn Sie bereit sind, zu verwenden Bibliotheken von Drittanbietern und dann Hilfsklassen wie Files von Guava oder FileUtils von Apache Commons IO machen das Lesen von Dateien sehr einfach.

Beispiele unten (wo File file = new File("path/to/file.txt") ) des Lesens aller Zeilen einer Textdatei in eine Liste und Lesen der gesamten Datei in einen String.

Guave:

%Vor%

Apache Commons IO:

%Vor%

Meine Empfehlung (ab 2013) ist Guava , eine moderne, saubere, aktiv gepflegte Bibliothek. Es ist in der Regel von höherer Qualität als Apache Commons Zeug.

Natürlich würde das Hinzufügen von Guava nur für diesen Zweck keinen Sinn ergeben, da es eine relativ große Bibliothek ist. Auf der anderen Seite würde nicht , die Guava heute in einem Java-Projekt verwendet, IMO dumm sein. :-)

Zugegeben, JDK bietet jetzt einige adäquate Werkzeuge ( Scanner ) für diesen speziellen Zweck; Die Verwendung einer 3rd-Party-Bibliothek zum Lesen von Dateien war eher gerechtfertigt, wenn so etwas wie war die Alternative.

    
Jonik 05.02.2011 19:12
quelle
1

Apache commons ist immer ein guter Anfang.

Siehe Ссылка

    
Pablojim 05.02.2011 19:12
quelle
1

Sie könnten Apache's FileUtils ausprobieren. Methoden wie

%Vor%     
Peter Lawrey 05.02.2011 19:13
quelle
0

Sie können InputStreamReader (das Sie mit einem InputStream wie FileInputStream erstellen) auch in einem BufferedReader zum einfachen Zeilenlesen von Dateien verwenden.

    
Nitrex88 05.02.2011 19:12
quelle

Tags und Links