使用Commons或Guava将文本文件导入Java List
使用Commons或Guava库将每行文本(从文本文件)放入LinkedList(作为String对象)或其他集合的最优雅方法是什么。
以下是Guava的使用方法 :
List lines = Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
参考:
-
Files.readLines(File, Charset)
使用Apache Commons IO ,您可以使用FileUtils#readLines
方法。 它很简单:
List lines = FileUtils.readLines(new File("...")); for (String line : lines) { System.out.println(line); }
你可以使用番石榴:
Files.readLines(new File("myfile.txt"), Charsets.UTF_8);
或apache commons io:
FileUtils.readLines(new File("myfile.txt"));
我会说两者都同样优雅。
根据您的确切用法,假设“默认编码”可能是个好主意。 无论哪种方式,我个人认为Guava API明确表示您正在对文件的编码做出假设。
更新:Java 7现在内置了这个: Files.readAllLines(Path path,Charset cs) 。 而且你也必须明确指定charset。
使用org.apache.commons.io.FileUtils
FileUtils.readLines(new File("file.txt"));
它们非常相似,Commons IO看起来像这样:
List lines = FileUtils.readLines(new File("file.txt"), "UTF-8");
Guava的主要优点是charset的规范(没有拼写错误):
List lines = Files.readLines(new File("file.txt"), Charsets.UTF_8);
这可能就是你要找的东西
FileUtils.readLines(File file)
我不确定你是否只想通过Guava或Commons IO知道如何做到这一点,但是从Java 7开始,这可以通过java.nio.file.Files.readAllLines(Path path, Charset cs)
( javadoc )完成。
List allLines = Files.readAllLines(dir.toPath(), StandardCharsets.UTF_8);
由于这是Java SE的一部分,因此它不需要您向项目添加任何其他jar文件(Guava或Commons)。
- 使用不同的格式/模式解析字符串到目前为止
- 将java Map转换为自定义键=值字符串
- PropertyPlaceholderConfigurer从XML文件读取(Apache Commons配置)
- 加速Apache Commons FTPClient传输
- html多部分表单中输入文本字段的值
- 如何让google guice注入一个自定义记录器,比如一个commons-logging或log4j logger
- 用Java确定另一个国家的互联网时间
- Apache commons fileupload FileItemIterator hasNext()返回false
- 文件上传“multipart / form”exceptionorg.apache.commons.fileupload.FileUploadBase $ InvalidContentTypeException