Java I/O流(二)
来源:互联网 发布:小站托福tpo mac版 编辑:程序博客网 时间:2024/05/17 04:11
本节将介绍主要的流类
管道流PipedReader,PipedWriter
这里只介绍管道字符流,字节流PipedInputStream,PipedOutputStream类同。什么是管道流呢?管道流可以在线程间通信,输入流和输出流相连后便形成了管道。两线程间不共享数据,有别于共享数据通信。下图如示
管道流连接方式,即输入流与输出流相连接形成管道,而且输入流和输出流在不同线程中操作。以PipedReader示例,两种方式连接:
直接使用构造函数PipedReader(PipedWriter src);PipedReader(PipedWriter src, int pipeSize);
使用方法void connect(PipedWriter src);
代码示例
分别定义了发送线程,接收线程。
public class TestPipe {static class SendThread extends Thread{private PipedWriter pipedWriter = null;private String sendMessage = null;;public SendThread(String message){this.setName("SendThread");this.sendMessage = message;this.pipedWriter = new PipedWriter();}public void run(){try {pipedWriter.write(sendMessage);pipedWriter.close();} catch (Exception e) {e.printStackTrace();}}public PipedWriter getPipedWriter() {return pipedWriter;}}static class RevicerThread extends Thread{private PipedReader pipedReader = null;public RevicerThread(){this.setName("RevicerThread");this.pipedReader = new PipedReader();}public void run(){try {LineNumberReader lnr = new LineNumberReader(pipedReader);String line = lnr.readLine();lnr.close();pipedReader.close();System.out.println("接收线程RevicerThread接收到消息:"+line);} catch (Exception e) {e.printStackTrace();}}public PipedReader getPipedReader() {return pipedReader;}}public static void main(String[] args) {try {SendThread sender = new SendThread("这是发送线程sendTread发送的消息.");RevicerThread revicer = new RevicerThread();sender.getPipedWriter().connect(revicer.getPipedReader());sender.start();revicer.start();} catch (Exception e) {e.printStackTrace();}}}
连接多个流SequenceInputStream
表示多个输入流的逻辑串联。它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达包含的最后一个输入流的文件末尾为止。不再给出示例。
可以回推的输入流PushBackInputStream,PushbackReader
即可以对已读出的数据重新回推到输入流,下次读取的时候重新读取。例子待续。
对象序列化流
这里只给出ObjectInputStream继承关系图,ObjectOutputStream类似。想详细了解Java序列化请看《Java对象序列化》章节。
- Java I/O流(二)
- JAVA I/O 流(二)
- Java进击(二) I/O流
- Java基础I/O流(二)
- Java I/O流总结(二)
- I/O流<二>
- java(I/O流二)java.io.File类
- Java I/O 技术(十一)—— I/O 功能流对象(二)
- Java I/O全文摘要(二)基本I/O,输出流
- java I/O流
- java I/O流
- java I/O流
- Java I/O流
- JAVA--I/O流
- java I/O流
- java I/O流
- java I/O流
- Java I O流
- 女儿看到爸爸与别的女人上了床
- Nib 转代码
- 把路由器设置为交换机或者二级路由设置联网
- 新浪旧事-java对Cookie的操作
- GPIO驱动分析 & GPIO使用方法 -- S5PC110
- Java I/O流(二)
- 收集oracle统计信息
- 第二天-通过共有函数访问私有函数
- Hibernate初次接触
- Win7下tomcat拒绝访问 Unable to open the service 'Tomcat7'
- nginx -- datastruct:内存管理
- Jni函数调用 Chap1:JNI完全手册
- jquery easyui treegrid使用小结
- Tomcat7 集群配置