Qual è il modo più elegante per inserire ogni riga di testo (dal file di testo) in LinkedList (come oggetto String) o in un'altra raccolta, utilizzando le librerie Commons o Guava.File di testo in Java List <String> utilizzando Commons o Guava
risposta
Ecco come fare con Guava:
List<String> lines = Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
Riferimento:
Utilizzando Apache Commons IO, è possibile utilizzare il metodo FileUtils#readLines
. E 'semplice come:
List<String> lines = FileUtils.readLines(new File("..."));
for (String line : lines) {
System.out.println(line);
}
Questo è probabilmente quello che stai cercando
utilizzando org.apache.commons.io.FileUtils
FileUtils.readLines(new File("file.txt"));
È possibile utilizzare Guava:
Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
o Apache Commons IO:
FileUtils.readLines(new File("myfile.txt"));
direi entrambi sono ugualmente elegante.
A seconda del vostro uso esatto, assumendo che la "codifica predefinita" potrebbe essere una buona idea o no. Ad ogni modo, personalmente trovo che l'API di Guava chiarisca che stai facendo una supposizione sulla codifica del file.
Aggiornamento: Java 7 ora ha questo integrato: Files.readAllLines(Path path, Charset cs). E anche lì devi specificare il set di caratteri esplicitamente.
sono abbastanza simili, con Commons IO essa sarà simile a questa:
List<String> lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
vantaggio principale di Guava è la specificazione del set di caratteri (senza errori di battitura):
List<String> lines = Files.readLines(new File("file.txt"), Charsets.UTF_8);
Sono non so se vuoi solo sapere come farlo tramite Guava o Commons IO, ma dato che Java 7 può essere fatto tramite java.nio.file.Files.readAllLines(Path path, Charset cs)
(javadoc).
List<String> allLines = Files.readAllLines(dir.toPath(), StandardCharsets.UTF_8);
Dal momento che questo fa parte del Java SE che non richiede di aggiungere eventuali file jar aggiuntivi (Guava o Commons) al progetto.
- 1. conversione di file audio in file di testo utilizzando java
- 2. Java Commons Collezioni removeAll
- 3. Scarica il file usando java apache commons?
- 4. Client IMAP in Java: API JavaMail o Apache Commons Net?
- 5. Leggi tar.gz in Java con Commons-compression
- 6. overloading di funzioni Java con List <> parametro
- 7. Servizio riavviabile utilizzando Guava
- 8. Analisi di multipart/form-data utilizzando Apache Commons File Upload
- 9. Come inizializzare l'oggetto List <String> in Java?
- 10. C'è una biblioteca di Commons AnnotationUtils? (Java)
- 11. Java 8 CompletableFuture.allOf (...) con Collection o List
- 12. Apache commons alternative di upload di file
- 13. Rimuovere i duplicati dall'elenco utilizzando Guava
- 14. Sostituire il testo in un file utilizzando Stream- Java 8
- 15. Decidere tra Apache Commons exec o ProcessBuilder
- 16. Mappatura Sevlet Java. Benvenuto File List
- 17. dataset to List <T> utilizzando LINQ
- 18. Quanto costa chiamare size() su List o Map in Java?
- 19. Memorizzazione generica List <CustomObject> utilizzando ApplicationSettingsBase
- 20. Leggere i dati da un file di testo utilizzando Java
- 21. Java: Come convertire String [] in List o Set
- 22. Coppia Java <T,N> implementazione classe
- 23. C# List <> di xml
- 24. Come ottenere la conversione da List <SomeParamType> a List <SomeParamType <?>>
- 25. Qualcosa in Guava simile all'effetto funzionale di Java?
- 26. Hibernate Set o List
- 27. List vs Map in Java
- 28. std :: queue <T, list<T>> :: size() è lento in O (n)?
- 29. Come eseguire il cast List <Map<?, ?>> in List <Map <String, String >>?
- 30. Leggere un file di testo in java
'IOUtils.lineIterator' è una scelta migliore in quanto non carica l'intero file in memoria. –