java中如何获取文件内容?
为了获取txt文件的内容,我通常使用扫描仪并迭代每一行来获取内容:
Scanner sc = new Scanner(new File("file.txt"));
while(sc.hasNextLine()){
String str = sc.nextLine();
}
java api是否提供了一种通过一行代码获取内容的方法,例如:
String content = FileUtils.readFileToString(new File("file.txt"))
to get the content of a txt file I usually use a scanner and iterate over each line to get the content:
Scanner sc = new Scanner(new File("file.txt"));
while(sc.hasNextLine()){
String str = sc.nextLine();
}
Does the java api provide a way to get the content with one line of code like:
String content = FileUtils.readFileToString(new File("file.txt"))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不是内置 API - 但 Guava 可以,还有其他宝藏。 (这是一个很棒的库。)
有类似的方法可以读取任何 Readable,或者将二进制文件的全部内容加载为字节数组,或者将文件读入字符串列表等。
请注意,此方法现已弃用。新的等价物是:
Not the built-in API - but Guava does, amongst its other treasures. (It's a fabulous library.)
There are similar methods for reading any Readable, or loading the entire contents of a binary file as a byte array, or reading a file into a list of strings, etc.
Note that this method is now deprecated. The new equivalent is:
Java 7 中有一个符合这些原则的 API。
Files.readAllLines(路径路径,字符集cs)
With Java 7 there is an API along those lines.
Files.readAllLines(Path path, Charset cs)
commons-io 具有:
commons-io has:
来自 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Files.html#readString(java.nio .文件.路径)
From https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Files.html#readString(java.nio.file.Path)
您可以将 FileReader 类与 BufferedReader 一起使用来读取文本文件。
You could use the FileReader class together with the BufferedReader to read the text file.
经过一些测试,我发现 BufferedReader 和 Scanner 在各种情况下都有问题(前者经常无法检测新行,后者经常删除空格,例如,由 org.json 库导出的 JSON 字符串)。还有其他可用的方法,但问题是它们仅在某些 Java 版本之后才受支持(例如,这对 Android 开发人员来说很糟糕),并且您可能不想仅出于这样的单一目的使用 Guava 或 Apache commons 库。因此,我的解决方案是将整个文件作为字节读取并将其转换为字符串。下面的代码取自我的一个爱好项目:
您可以简单地使用
getFileContent(file, "")
来读取文件的内容。After a bit of testing, I find
BufferedReader
andScanner
both problematic under various circumstances (the former often fails to detect new lines and the latter often strips spaces, for instance, from a JSON string exported by org.json library). There are other methods available but the problem is they are only supported after certain Java versions (which is bad for an Android developer, for example) and you might not want to use Guava or Apache commons library just for a single purpose like this. Hence, my solution is to read the whole file as bytes and convert it to string. The code below are taken from one of my hobby projects:You can simply use
getFileContent(file, "")
to read the content of a file.