【发布时间】:2017-08-23 12:26:22
【问题描述】:
我有一个使用文本文件存储人名的程序,但问题是当我使用 BufferedReader 或 Scanner 读取文件时它不起作用,因为文本文件中的字符太多(估计约 20 000)。而且我知道 BufferedReader 的限制为 8192 个字符,而 Scanner 的限制为 1024 个字符。
那么我该怎么做才能读取所有字符而不会出现错误或其中一些字符被遗漏?
BufferedReader BR = new BufferedReader(new FileReader(new File("names.txt")));
(编辑)
我发现问题不是 BufferedReader 而是文本文件。文本文件已损坏,因此当我重新制作文本文件并删除旧文件时,它可以正常工作。所以感谢所有试图帮助我但我只是个白痴的人。
【问题讨论】:
-
这不是限制,而是缓冲区的大小。没有遗漏任何内容,如果您真的尝试过任何东西,您就会注意到它。
-
我会得到代码并发布它但你确定没有限制
-
你可能想使用
List<String> lines = Files.readAllLines(Paths.get("test.txt"), StaticCharsets.UTF_8); -
为什么会有限制?限制您可以阅读的字符数量有什么好处?
-
如果您实际上在从 BuffereredReader 读取超过 8k 的数据时遇到问题,那么您应该 edit 在您的问题中包含演示问题的代码。
标签: java text-files bufferedreader