我正在尝试读取文本并将其每一行保存到 ArrayList 的新元素中。无论如何,是否可以继续读取并添加到 ArrayList 中,直到它到达文件末尾或每当读取器找不到任何其他行可以读取时?
此外,什么最好用?扫描仪还是BufferedReader?
最佳答案
传统上,您会执行以下操作:
- 创建
Scanner
或BufferedReader
的实例 - 设置连续读取文件的条件(使用
Scanner
,通过scanner.hasNextLine()
;使用BufferedReader
,有一点还有更多工作要做) - 从任一行获取下一行并将其添加到您的列表中。
但是,使用 Java 7 的 NIO 库,您根本不需要这样做。
您可以利用Files#readAllLines
准确地完成您想要的事情;无需自己进行任何迭代。您必须提供文件路径和字符集(即 Charset.forName("UTF-8");
),但其工作原理基本相同。
Path filePath = Paths.get("/path/to/file/on/system");
List<String> lines = Files.readAllLines(filePath, Charset.forName("UTF-8"));
关于java - 如何在java中将txt行复制到ArrayList中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293372/