Что является самым элегантным способом поместить каждую строку текста (из текстового файла) в LinkedList (как объект String) или какую-либо другую коллекцию, используя библиотеки Commons или Guava.Текстовый файл в список Java <String> с использованием Commons или Guava
ответ
Вот как это сделать с Guava:
List<String> lines = Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
Ссылка:
Используя Apache Commons IO, вы можете использовать метод FileUtils#readLines
. Это так же просто, как:
List<String> lines = FileUtils.readLines(new File("..."));
for (String line : lines) {
System.out.println(line);
}
Это, вероятно, что вы ищете для
с использованием org.apache.commons.io.FileUtils
FileUtils.readLines(new File("file.txt"));
Вы можете использовать Guava:
Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
Или Apache Commons IO:
FileUtils.readLines(new File("myfile.txt"));
Я бы сказал, что оба одинаково элегантно.
В зависимости от вашего использования, если предположить, что «кодировка по умолчанию» может быть хорошей идеей или нет. В любом случае, лично я считаю, что API Гуавы дает понять, что вы делаете предположение о кодировке файла.
Обновление: Java 7 теперь имеет этот встроенный: Files.readAllLines(Path path, Charset cs). И там тоже вы должны явно указать кодировку.
Они очень похожи, с Commons IO это будет выглядеть следующим образом:
List<String> lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
Основное преимущество гуавы является спецификация набора символов (без опечаток):
List<String> lines = Files.readLines(new File("file.txt"), Charsets.UTF_8);
Я не уверен, хотите ли вы только знать, как это сделать через 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 (гуава или Commons) к вашему проекту.
'IOUtils.lineIterator' - лучший выбор, поскольку он не загружает весь файл в память. –