java中的6种stream

1、文件字节流:InputStream 和 OutputStream,它的子类是FileInputStream和FileOutputStream。

2、文件字符流:Reader 和 Writer,它的子类是 FileReader 和 FileWriter。

3、缓冲流:BufferReader类创建的对象称为缓冲输入流,该输入流的指向必须是一个Reader流,称为BufferReader的底层流,底层流负责将数据读入到缓冲区,BufferReader流的源就是这个缓冲区,缓冲输入流再从缓冲区读取数据;同样的BufferWriter类创建的对象称为缓冲输出流,该输入流的指向必须是一个Writer流,称为BufferWriter的底层流,BufferWriter流负责将数据写入到缓冲区,底层流的源就是这个缓冲区,底层流再从缓冲区写入数据到目的地。

4、数据流:DataInputStream和DataOutputStream创建的对象称为数据输入流和数据输出流。

5、对象流:ObjectInputStream和ObjectOutputStream分别是InputStream和OutputStream的子类。ObjectInputStream和ObjectOutputStream创建的对象称为对象输入流和对象输出流,对象输出流使用WriteObject(Object object)方法将一个对象Obj写入输出流送往目的地对象输入流则使用ReadObject(Object object)方法从源中读取一个对象到程序中。当使用对象流写入或读取对象时,要保证对象时序列化的,这是为了保证能把对象写入到文件,并且从文件中正确读取到程序中。一个类如果实现了Serializable接口,那么这个类创建的对象就是序列化的对象,Serializable接口中的方法对程序是不可见的,因此实现该接口的类不需要实现额外的方法,当把一个序列化的对象写入到对象输出流时,JVM会自动的实现Serizlizable接口中的方法,按照一定格式的文本将对象写入到目的地。

 

posted @ 2017-05-24 17:49  奋斗的蜗牛cn  阅读(886)  评论(0编辑  收藏  举报