【问题标题】:How can I read text from a file in Java with streams of size I choose?如何使用我选择的大小流从 Java 文件中读取文本?
【发布时间】: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 都不会将整个文件加载到内存中。
  • 你错了。它逐行读取文件并丢弃每一行。它不会将整个文件加载到内存中。

标签: java java-io


【解决方案1】:

一个简单的文本扫描器,可以解析原始类型和字符串 使用正则表达式。

扫描器使用分隔符模式将其输入分解为标记, 默认情况下匹配空格。然后生成的令牌可能是 使用各种 next 转换为不同类型的值 方法。

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

这里是答案:Faster way to read file

【讨论】:

    猜你喜欢
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2011-01-10
    • 2011-08-17
    • 1970-01-01
    • 2013-03-10
    相关资源
    最近更新 更多