Java基础之管道流对象 PipedInputStream / PipedOutputStream
2013-02-04 10:55
387 查看
管道流 PipedInputStream / PiedOutputStream
说明:输入输出可以直接进行连接,通过结合线程使用。
import java.io.*;
class PipedStreamDemo
{
public static void main(String[] args) throws Exception
{
PipedInputStream in = new PipedInputStream();
PipedOutputStream out = new PipedOutputStream();
in.connect(out);
new Thread(new Reader(in)).start();
new Thread(new Writer(out)).start();
}
}
class Reader implements Runnable
{
private PipedInputStream in;
public Reader(PipedInputStream in)
{
this.in = in;
}
public void run()
{
try
{
byte[] buffer = new byte[1024];
int length = 0;
System.out.println("等待读取数据...");
while((length=in.read(buffer))!=-1)
{
System.out.println(new String(buffer,0,length));
}
in.close();
}
catch(Exception e)
{
throw new RuntimeException(e.getMessage());
}
}
}
class Writer implements Runnable
{
private PipedOutputStream out;
public Writer(PipedOutputStream out)
{
this.out = out;
}
public void run()
{
try
{
System.out.println("六秒后开始写入数据...");
Thread.sleep(6000);
out.write("hello PipedStream here.".getBytes());
out.close();
}
catch(Exception e)
{
throw new RuntimeException(e.getMessage());
}
}
}
说明:输入输出可以直接进行连接,通过结合线程使用。
import java.io.*;
class PipedStreamDemo
{
public static void main(String[] args) throws Exception
{
PipedInputStream in = new PipedInputStream();
PipedOutputStream out = new PipedOutputStream();
in.connect(out);
new Thread(new Reader(in)).start();
new Thread(new Writer(out)).start();
}
}
class Reader implements Runnable
{
private PipedInputStream in;
public Reader(PipedInputStream in)
{
this.in = in;
}
public void run()
{
try
{
byte[] buffer = new byte[1024];
int length = 0;
System.out.println("等待读取数据...");
while((length=in.read(buffer))!=-1)
{
System.out.println(new String(buffer,0,length));
}
in.close();
}
catch(Exception e)
{
throw new RuntimeException(e.getMessage());
}
}
}
class Writer implements Runnable
{
private PipedOutputStream out;
public Writer(PipedOutputStream out)
{
this.out = out;
}
public void run()
{
try
{
System.out.println("六秒后开始写入数据...");
Thread.sleep(6000);
out.write("hello PipedStream here.".getBytes());
out.close();
}
catch(Exception e)
{
throw new RuntimeException(e.getMessage());
}
}
}
相关文章推荐
- Java_基础—对象操作流ObjecOutputStream/ObjectInputStream
- Java基础之对象的序列化(持久化)操作对象ObjectInputStream/ObjectOutputStream
- Java管道 PipedInputStream PipedOutputStream
- Java-IO之对象输入流输出流(ObjectInputStream和ObjectOutputStream)
- Java基础知识强化之IO流笔记36:InputStreamReader/OutputStreamWriter 复制文本文件案例
- java语言编程IO流之对象序列化和ObjectInputStream与ObjectOutputStream
- java对象流ObjectInputStream、ObjectOutputStream的使用
- java文件传输基础:序列化和反序列化ObjectInputStream/ObjectOutputStream
- java基础之IO流--ByteArrayInputStream(没有使用系统资源不会抛异常的IO流对象)
- Java基础 - IO流之字节流,FileInputStream,FileOutputStream,BufferedInputStream,BufferedOutputStream
- Java-IO之管道(PipedInputStream和PipedOutputStream)
- Java基础知识强化之IO流笔记28:BufferedOutputStream / BufferedInputStream(字节缓冲区流) 之BufferedOutputStream写出数据
- java基础之IO流--ObjectOutputStream(专门用于操作对象)
- Java基础之IO流,合并流对象SequenceInputStream对文件的切割与合并操作
- 黑马程序员——java基础 io 流 四个基类InputStream,OutputStream,Reader,Writer
- Java基础知识强化之IO流笔记29:BufferedOutputStream / BufferedInputStream(字节缓冲区流) 之BufferedInputStream读取数据
- java 对象流(ObjectOutputStream,ObjectInputStream)
- Java IO--对象序列化Serializable、ObjectOutputStream、ObjectInputStream、transient
- java基础之IO转换流--OutputStreamWriter(字符流通往字节流,可以指定字符编码的IO流对象)
- java文件传输基础:字节字符流的转换OutputStreamWriter/InputStreamReader