Каков самый элегантный способ поместить каждую строку текста (из текстового файла) в LinkedList (как объект String) или какую-либо другую коллекцию, используя библиотеки Commons или Guava.
Текстовый файл в список Java <String>, используя Commons или Guava
Ответ 1
Здесь, как это сделать с помощью Guava:
List<String> lines = Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
Ссылка:
Ответ 2
Используя Apo Commons IO, вы можете использовать метод FileUtils#readLines
. Это так же просто, как:
List<String> lines = FileUtils.readLines(new File("..."));
for (String line : lines) {
System.out.println(line);
}
Ответ 3
Вы можете использовать Guava:
Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
Или apache commons io:
FileUtils.readLines(new File("myfile.txt"));
Я бы сказал, что оба они одинаково элегантны.
В зависимости от вашего точного использования, предполагая, что "кодировка по умолчанию" может быть хорошей идеей или нет. В любом случае, лично мне хорошо, что API Guava дает понять, что вы делаете предположение о кодировании файла.
Обновление: В Java 7 теперь встроено следующее: Files.readAllLines(путь пути, Charset cs). И там тоже вы должны явно указать кодировку.
Ответ 4
используя org.apache.commons.io.FileUtils
FileUtils.readLines(new File("file.txt"));
Ответ 5
Это, вероятно, то, что вы ищете
Ответ 6
Они очень похожи, с Commons IO он будет выглядеть так:
List<String> lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
Главным преимуществом Guava является спецификация кодировки (без опечаток):
List<String> lines = Files.readLines(new File("file.txt"), Charsets.UTF_8);
Ответ 7
Я не уверен, что вы только хотите знать, как это сделать с помощью Guava или Commons IO, но с Java 7 это можно сделать через java.nio.file.Files.readAllLines(Path path, Charset cs)
(Javadoc).
List<String> allLines = Files.readAllLines(dir.toPath(), StandardCharsets.UTF_8);
Поскольку это часть Java SE, вам не нужно добавлять в проект дополнительные файлы jar (Guava или Commons).