本帖最后由 huazi 于 2014-7-28 12:22 编辑
- import java.io.*;
- class Read implements Runnable
- {
- private PipedInputStream in;
- Read(PipedInputStream in)
- {
- this.in = in;
- }
- public void run()
- {
- try
- {
- byte[] buf = new byte[1024];
- System.out.println("读取前。。没有数据阻塞");
- int len = in.read(buf);
- System.out.println("读到数据。。阻塞结束");
- String s= new String(buf,0,len);
- System.out.println(s);
- in.close();
- }
- catch (IOException e)
- {
- throw new RuntimeException("管道读取流失败");
- }
- }
- }
- class Write implements Runnable
- {
- private PipedOutputStream out;
- Write(PipedOutputStream out)
- {
- this.out = out;
- }
- public void run()
- {
- try
- {
- System.out.println("开始写入数据,等待6秒后。");
- Thread.sleep(6000);
- out.write("piped lai la".getBytes());
- out.close();
- }
- catch (Exception e)
- {
- throw new RuntimeException("管道输出流失败");
- }
- }
- }
- class PipedStreamDemo
- {
- public static void main(String[] args) throws IOException
- {
- PipedInputStream in = new PipedInputStream();
- PipedOutputStream out = new PipedOutputStream();
- in.connect(out);
- Read r = new Read(in);
- Write w = new Write(out);
- new Thread(r).start();
- new Thread(w).start();
- }
复制代码 /**我的问题是:
*Write类中的out.write("piped lai la".getBytes());这是一个字节数组
*这个数组中的数据是怎么存入到Read类中byte[] buf = new byte[1024];这个数组里面去的?
*这两者之间在内存里面是怎样的一个情况?求解,谢谢
*/
|
|