【发布时间】:2014-06-05 04:51:03
【问题描述】:
所以我可以像这样读取带有Java 的文本文件:
File file = new File("C:/text.txt");
Scanner scanner = new Scanner(file,"utf-8");
while (scanner.hasNext()) {
scanner.nextLine();
// rest of the code...
我不是 100% 确定,但我相信这会加载整个文件,然后逐行读取文本。
假设您有一个非常大的文本文件,其中一行可能太长了。
如何从文件中读取文本,例如每次 50 个字符?我想要的是在每次迭代中我应该得到 50 个字符,而不是更多。
【问题讨论】:
-
在这种情况下,您将使用 BufferedReader 并指定要在每次迭代中读取的字节。
-
@W.K.S 这会避免将整个文件加载到内存中吗?
-
我相信 BufferedReader 和 Scanner 都不会将整个文件加载到内存中。
-
你错了。它逐行读取文件并丢弃每一行。它不会将整个文件加载到内存中。