Java IO:PipedInputStream

时间:2020-01-09 10:36:05  来源:igfitidea点击:

通过PipedInputStream类,可以将管道的内容作为字节流读取。管道是同一JVM内的线程之间的通信通道。在有关Java IO管道的教程中对管道进行了更详细的说明。

PipedInputStream示例

这是一个简单的PipedInputStream示例:

InputStream input = new PipedInputStream(pipedOutputStream);

int data = input.read();
while(data != -1) {
  //do something with data...
  doSomethingWithData(data);

  data = input.read();
}
input.close();

注意:为清楚起见,此处已跳过适当的异常处理。要了解有关正确的异常处理的更多信息,请转到Java IO异常处理。

PipedInputStream的read()方法返回一个int,其中包含读取的字节的字节值。如果read()方法返回-1,则说明流中不再有要读取的数据,可以将其关闭。也就是说,-1作为int值,而不是-1作为字节值。这里有区别!

更多PipedInputStream方法

由于PipedInputStream是InputStream的子类,因此PipedInputStream具有与InputStream相同的基本方法和使用模式。有关更多信息,请参见我的" InputStream"教程。

Java IO管道

如我们在上面的示例中看到的,需要将" PipedInputStream"连接到" PipedOutputStream"。当这两个流连接时,它们形成管道。