Qual è il modo più elegante per inserire ogni riga di testo (dal file di testo) in LinkedList (come object String) o in qualche altra raccolta, usando le librerie di Commons o di Guava.
Ecco come farlo con Guava :
List lines = Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
Riferimento:
Files.readLines(File, Charset)
Usando Apache Commons IO , puoi usare il metodo FileUtils#readLines
. È semplice come:
List lines = FileUtils.readLines(new File("...")); for (String line : lines) { System.out.println(line); }
Puoi usare Guava:
Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
O apache commons io:
FileUtils.readLines(new File("myfile.txt"));
Direi che entrambi sono ugualmente eleganti.
A seconda del tuo uso esatto, assumendo che la “codifica predefinita” potrebbe essere una buona idea o meno. 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.
utilizzando org.apache.commons.io.FileUtils
FileUtils.readLines(new File("file.txt"));
Sono abbastanza simili, con Commons IO assomiglierà a questo:
List lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
Il principale vantaggio di Guava è la specifica del set di caratteri (senza errori di battitura):
List lines = Files.readLines(new File("file.txt"), Charsets.UTF_8);
Questo è probabilmente quello che stai cercando
FileUtils.readLines(File file)
Non sono sicuro che tu voglia 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 allLines = Files.readAllLines(dir.toPath(), StandardCharsets.UTF_8);
Poiché questo fa parte di Java SE, non richiede l’aggiunta di ulteriori file jar (Guava o Commons) al progetto.