代码如下:
void pipe(InputStream is0, InputStream is1, OutputStream os0,
OutputStream os1) throws IOException {
try {
int ir;
byte bytes[] = new byte[BUFSIZ];
while (true) {
try {
if ((ir = is0.read(bytes)) > 0) {
os0.write(bytes, 0, ir);
if (logging)
writeLog(bytes, 0, ir, true);
} else if (ir < 0)
break;
} catch (InterruptedIOException e) {
}
try {
if ((ir = is1.read(bytes)) > 0) {
os1.write(bytes, 0, ir);
if (logging)
writeLog(bytes, 0, ir, false);
} else if (ir < 0)
break;
} catch (InterruptedIOException e) {
}
}
} catch (Exception e0) {
System.out.println("Pipe异常: " + e0);
}
}
但是弄不清为什么 ir=inputstream.read()<0不表示读完数据?求大神解释。
本文探讨了Java中InputStream.read()方法返回值小于0的情况,并非总是表示已读取完毕。通过具体代码示例,解释了该方法在不同场景下的行为。
1224

被折叠的 条评论
为什么被折叠?



