Viac na
Čítanie textového súboru v jazyku Java
Zdá sa, že v Jave existujú rôzne spôsoby čítania a zápisu údajov súborov.
Chcem čítať údaje ASCII zo súboru. Aké sú možné spôsoby a ich rozdiely?
899
3
Môj obľúbený spôsob čítania malého súboru je použitie BufferedReader a StringBuilder. Je to veľmi jednoduché a účelné (aj keď nie príliš efektívne, ale pre väčšinu prípadov postačujúce):
Niektorí upozornili, že po Jave 7 by ste mali používať try-with-resources (t. j. funkcie automatického zatvárania):
Keď čítam takéto reťazce, zvyčajne chcem tak či tak vykonať nejaké spracovanie reťazca na riadok, takže potom volím túto implementáciu.
Hoci ak chcem skutočne len prečítať súbor do reťazca, vždy používam Apache Commons IO s metódou IOUtils.toString() triedy. Na zdrojový kód sa môžete pozrieť tu:
http://www.docjar.com/html/api/org/apache/commons/io/IOUtils.java.html
A v Jave 7 je to ešte jednoduchšie:
ASCII je TEXTOVÝ súbor, takže na čítanie použijete
Readers
. Java podporuje aj čítanie z binárneho súboru pomocouInputStreams
. Ak sú čítané súbory obrovské, potom by ste chceli použiťBufferedReader
nadFileReader
, aby ste zvýšili výkon čítania.Prejdite si tento článok o tom, ako používať
Reader
Tiež by som vám odporučil stiahnuť si a prečítať túto úžasnú (a pritom bezplatnú) knihu s názvom Thinking In Java.
V Jave 7:
(docs) alebo
(docs)
V Jave 8:
(docs)
Najjednoduchším spôsobom je použitie triedy
Scanner
v jazyku Java a objektu FileReader. Jednoduchý príklad:Scanner
má niekoľko metód na čítanie reťazcov, čísel atď... Viac informácií o tom si môžete vyhľadať na stránke dokumentácie jazyka Java.Napríklad čítanie celého obsahu do
String
:Ak potrebujete špecifické kódovanie, môžete ho použiť namiesto
FileReader
: