gst*_*low 3 java io concurrency
我调查了java I/O. 现在我正在读管道.
我写了最简单的代码示例:
PipedInputStream pipedInputStream = new PipedInputStream();
PipedOutputStream pipedOutputStream = new PipedOutputStream();
pipedOutputStream.connect(pipedInputStream);
pipedOutputStream.write(new byte[]{1});
System.out.println(pipedInputStream.read());
Run Code Online (Sandbox Code Playgroud)
我有以下问题.据我了解 - 在现实生活中传递字节是非常奇怪的.
例如,为了传递整个String,是否真的要扩展此示例?
是.使用ObjectInputStream和ObjectOutputStream对其进行去除.
PipedOutputStream pipedOutputStream = new PipedOutputStream();
PipedInputStream pipedInputStream = new PipedInputStream();
pipedInputStream.connect(pipedOutputStream);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(pipedOutputStream);
ObjectInputStream objectInputStream = new ObjectInputStream(pipedInputStream);
objectOutputStream.writeObject("Hello world!");
String message = (String)objectInputStream.readObject();
System.out.println(message);
Run Code Online (Sandbox Code Playgroud)
有关装饰模式的更多信息,特别是Java I/O流装饰,您可以在此StackOverFlow Post中找到
顺便说一下,确保在ObjectInputStream之前启动ObjectOutputStream,并在创建Object输入/输出流之前使用connect方法连接管道.
原因如下:http://frequal.com/java/OpenObjectOutputStreamFirst.html
归档时间: |
|
查看次数: |
518 次 |
最近记录: |