gpt4 book ai didi

java - 将文件读入字符串的最简单方法是什么?

转载 作者:bug小助手 更新时间:2023-10-28 10:39:50 25 4
gpt4 key购买 nike

我正在尝试将一个简单的文本文件读入一个字符串。当然,通常的方法是获取输入流并使用 readLine() 进行迭代并将内容读入 String。

过去已经这样做了数百次,我只是想知道如何以最少的代码行数做到这一点? java 中没有像 String fileContents = XXX.readFile(myFile/*File*/) 之类的东西 .. 而不是像这样简单的东西吗?

我知道有像 Apache Commons IO 这样的库可以提供这样的简化,甚至我可以编写一个简单的 Util 类来做到这一点。但我想知道的是 - 这是一个每个人都需要的如此频繁的操作,那么为什么 Java 不提供这么简单的功能呢?难道真的没有一种方法可以将文件读入具有某种默认或指定编码的字符串吗?

最佳答案

是的,您可以在一行中完成此操作(尽管对于强大的 IOException 处理您不希望这样做)。

String content = new Scanner(new File("filename")).useDelimiter("\\Z").next();
System.out.println(content);

这使用了 java.util.Scanner ,告诉它用 \Z 分隔输入,这是字符串 anchor 的末端。这最终使输入具有一个实际的标记,即整个文件,因此可以通过调用 next() 来读取它。 .

a constructor这需要 FileString charSetName (在许多其他重载中)。这两个构造函数可能会抛出 FileNotFoundException , 但和所有 Scanner 一样方法,无 IOException可以抛出这些构造函数之外。

您可以查询Scanner本身通过 ioException() 方法如果 IOException发生与否。您可能还想明确地 close() Scanner阅读内容后,可能存储 Scanner最好在局部变量中引用。

另见

相关问题


第三方库选项

为了完整起见,如果您拥有这些非常有名且非常有用的第三方库,这些是一些非常好的选择:

Guava

com.google.common.io.Files 包含许多有用的方法。这里相关的是:

Apache Commons/IO

org.apache.commons.io.IOUtils 也提供类似的功能:

  • String toString(InputStream, String encoding)
    • 使用指定的字符编码,获取InputStream的内容作为 String
  • List readLines(InputStream, String encoding)
    • ...作为(原始)ListString , 每行一个条目

相关问题

关于java - 将文件读入字符串的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com