将文本文件转换为Java列表<;字符串>;使用Commons或番石榴

将文本文件转换为Java列表<;字符串>;使用Commons或番石榴,java,file,text,guava,apache-commons,Java,File,Text,Guava,Apache Commons,使用Commons或Guava库将每行文本(来自文本文件)放入LinkedList(作为字符串对象)或其他集合的最优雅方式是什么 使用,您可以使用方法。这很简单: List<String> lines = FileUtils.readLines(new File("...")); for (String line : lines) { System.out.println(line); } List lines=FileUtils.readLines(新文件(“…”); 用

使用Commons或Guava库将每行文本(来自文本文件)放入LinkedList(作为字符串对象)或其他集合的最优雅方式是什么

使用,您可以使用方法。这很简单:

List<String> lines = FileUtils.readLines(new File("..."));
for (String line : lines) {
  System.out.println(line);  
}
List lines=FileUtils.readLines(新文件(“…”);
用于(字符串行:行){
系统输出打印项次(行);
}

这可能就是你要找的


使用org.apache.commons.io.FileUtils

FileUtils.readLines(new File("file.txt"));
以下是如何使用:

List lines=Files.readLines(新文件(“myfile.txt”)、Charsets.UTF_8);
参考:

    • 您可以使用番石榴:

      Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
      
      或apache commons io:

      FileUtils.readLines(new File("myfile.txt"));
      
      我认为两者都同样优雅

      根据您的具体使用情况,假设“默认编码”可能是个好主意,也可能不是。不管怎样,我个人认为GuavaAPI清楚地表明您正在对文件的编码进行假设是很好的

      更新:
      Java 7现在内置了以下内容:。您还必须显式指定字符集。

      它们非常相似,使用Commons IO时,看起来如下所示:

      List<String> lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
      
      List lines=FileUtils.readLines(新文件(“File.txt”),“UTF-8”);
      
      番石榴的主要优点是字符集的规格(无拼写错误):

      List lines=Files.readLines(新文件(“File.txt”)、Charsets.UTF_8);
      
      我不确定您是否只想知道如何通过Guava或Commons IO实现这一点,但由于Java 7可以通过
      Java.nio.file.Files.readAllLines(路径路径,字符集cs)
      ()

      List allLines=Files.readAllLines(dir.toPath(),StandardCharsets.UTF_8);
      

      由于这是Java SE的一部分,因此不需要向项目中添加任何额外的jar文件(Guava或Commons)。

      IOUtils.lineIterator
      是一个更好的选择,因为它不会将整个文件加载到内存中。
      List<String> lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
      
       List<String> lines = Files.readLines(new File("file.txt"), Charsets.UTF_8);
      
      List<String> allLines = Files.readAllLines(dir.toPath(), StandardCharsets.UTF_8);