gpt4 book ai didi

java - 发生 EOFException 时返回是否安全

转载 作者:行者123 更新时间:2023-11-30 09:28:33 32 4
gpt4 key购买 nike

当我将 Inputstream 复制到 OutputStream 时,有时会发生 EOFException

来自 EOFException 的文档可能被数据输入流用来表示流结束。

那么这是否意味着当 EOFException 发生时返回是安全的?

public static void copy(InputStream in, OutputStream out) throws IOException {

byte[] buff = new byte[BUF_SIZE];
int n = -1;

try {
while ((n = in.read(buff)) >= 0) {
out.write(buff, 0, n);
}
} catch (EOFException eof) {
// reach EOF , return
}

最佳答案

EOFException 不能在 InputStream.read(byte[]) 中抛出,它的 API 说 IOException 抛出“如果第一个字节由于文件末尾以外的任何原因无法读取...”。

EOFException 用于其他目的,例如。如果输入流在读取所有字节之前到达末尾,java.io.DataInputStream.readFully(byte[] b) 可能会抛出 EOFException。

但是,无论如何,EOFException 表明发生了错误,你不应该忽略它并像什么都没发生一样返回。

关于java - 发生 EOFException 时返回是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13971414/

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