【发布时间】:2020-02-20 08:48:32
【问题描述】:
这个java方法在读取文件后会关闭输入流吗?
Files.readAllBytes(Paths.get("file"))
【问题讨论】:
-
这个javadocs stuff 太棒了从文件中读取所有字节。该方法确保在读取所有字节后关闭文件
标签: java file-io inputstream
这个java方法在读取文件后会关闭输入流吗?
Files.readAllBytes(Paths.get("file"))
【问题讨论】:
标签: java file-io inputstream
是的,它关闭了。在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);
}
}
【讨论】: