【问题标题】:Does Files.readAllBytes() closes the inputstream after reading the file?Files.readAllBytes() 是否在读取文件后关闭输入流?
【发布时间】:2020-02-20 08:48:32
【问题描述】:

这个java方法在读取文件后会关闭输入流吗?

Files.readAllBytes(Paths.get("file"))

【问题讨论】:

  • 这个javadocs stuff 太棒了从文件中读取所有字节。该方法确保在读取所有字节后关闭文件

标签: java file-io inputstream


【解决方案1】:

是的,它关闭了。在javadoc 中查看。

从文件中读取所有字节。该方法确保文件是 在读取所有字节或 I/O 错误或其他运行时关闭 异常,被抛出。

请注意,此方法适用于 方便将所有字节读入一个字节的简单情况 大批。它不适用于读取大文件。

public static byte[] readAllBytes(Path path) throws IOException {
    try (SeekableByteChannel sbc = Files.newByteChannel(path);
         InputStream in = Channels.newInputStream(sbc)) {
        long size = sbc.size();
        if (size > (long)MAX_BUFFER_SIZE)
            throw new OutOfMemoryError("Required array size too large");

        return read(in, (int)size);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-24
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2018-04-14
    • 2018-02-21
    相关资源
    最近更新 更多