代码如下:
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不表示读完数据?求大神解释。