当前位置: 首页 > 知识库问答 >
问题:

用JAVA读取文本文件

古文康
2023-03-14

可以使用FileReader直接读取文本文件

我们为什么需要使用InputStream方法

共有2个答案

文建业
2023-03-14

对这个答案的补充...

如果不需要的话,真的没有必要使用BufferedReader,除了它有非常方便的. readLine()方法。这是第一点。

第二,更重要的是:

  • 使用JSR203。不要再使用文件
  • 使用try with资源

它们都出现在Java7中。因此,读取文本文件的新方法如下:

final Path path = Paths.get("path/to/the/file");

try (
    final BufferedReader reader = Files.newBufferedReader(path,
        StandardCharsets.UTF_8);
) {
    // use reader here
}

在Java8中,还有一个版本的文件。newBufferedReader(),它不接受字符集作为参数;默认情况下,这将以UTF-8读取。同样在Java8中,您有文件。行()

try (
    final Stream<String> stream = Files.lines(thePath);
) {
    // use the stream here
}

是的,对这样的流使用资源尝试!

谢志文
2023-03-14

FileReader是用于读取字符文件的方便类。此类的构造函数假定默认字符编码和默认字节缓冲区大小是适当的。要自己指定这些值,请在FileInputStream上构建InputStreamReader。

 类似资料:
  • 问题内容: 真正简单的问题。我需要在Java程序中读取Unicode文本文件。 我习惯于使用带有BufferedReader FileReader组合的纯ASCII文本,这显然不起作用:( 我知道我可以使用“缓冲读取器”以“传统”方式读取字符串,然后使用类似以下方式的字符串进行转换: 但是,有没有办法将阅读器包装在“转换器”中? 编辑:文件以FF FE开头 问题答案: 您不会包装Reader,而是

  • 问题内容: 通过运行此… 我一直收到这个错误,我真的不知道该如何解决。该文件当前与.java文件位于我的源包中。通过指定路径,我可以很容易地读取文件,但是我打算在多台计算机上运行该文件,因此我需要文件可以随程序一起移植。这个问题不是关于读取文本文件,而是指定其位置而不使用绝对路径。香港专业教育学院寻找答案,但我得到的答案只是“指定名称”和“指定绝对路径”。ID张贴图像,使其更清晰,但我没有10代表

  • 问题内容: 我想读取不同块的日志文件,以使其成为多线程。该应用程序将在具有多个硬盘的服务器端环境中运行。读取成块后,应用程序将处理每个块的每一行。 我已经用bufferedreader完成了对每个文件行的读取,并且可以通过将RandomAccessFile与MappedByteBuffer结合使用来制作文件块,但是将这两者结合起来并不容易。 问题在于该块正好切入我块的最后一行。我从来没有块的最后一

  • 问题内容: 我想读取一个包含空格分隔值的文本文件。值是整数。如何读取并将其放入数组列表? 这是文本文件内容的示例: 我想将它包含在arraylist中。如何用Java做到这一点? 问题答案: 你可以用来将文本文件的所有行都放入。 教程:基本文件读取,写入和创建文本文件 你可以用来基于正则表达式拆分部分。 教程:数字和字符串>字符串>操纵字符串中的字符 你可以使用将转换为。 教程:数字和字符串>字符

  • 问题内容: 我有一个文本文件。我想从一行到另一行检索内容。例如,文件可以是200K行。我想从第78行到第2735行读取内容。由于文件可能很大,所以我不想将整个内容读取到内存中。 问题答案: 这是一个可能的解决方案的开始:

  • 问题内容: 我正在尝试读取以下形式的大文本文件: 我想在文本文件中将此字符串作为一个大的Java字符串读取。这可能吗?我知道使用split方法。 它可以逐行读取它,但我真正需要的是在“ +”号处分割此长文本字符串。之后,我想将其存储为数组,arraylist,列表,… 谁能帮我这个?因为互联网上的所有信息都只是逐行读取文件。提前致谢! 问题答案: 您可以使用或任何IO类读取文件。假设文件中包含该字