首页 > 代码库 > Java I/O流的总结

Java I/O流的总结

I/O的类结构图

 技术分享

I/O的分类      

根据处理的数据类型分为:字节流和字符流。

根据数据流向分为:输入流和输出流。

流又可分为节点流和处理流。

节点流

直接与数据源相连

技术分享

处理流

与节点流一起使用,在节点流的基础上,再嵌套一层。提高文件的读取效率。

技术分享

输入流

InputStream

作用是以字节的形式读取数据源产生的数据。

Reader

作用是以字符的形式读取数据源产生的数据。

输出流

OutputStream

作用是以字节的形式在接收端写数据。

Writer

作用是以字符的形式在接收端写数据。

常用的流

缓冲流

作用:缓冲流提供缓冲区,先把数据写入缓冲区,当缓冲区写满之后,再把缓冲区的内容写到文件中去。这样会提高读取效率。

对象流

作用:用于写入/读取对象的信息,使对象持久化。

使用的注意事项:

       1.如果想将一个对象写入到磁盘中,那么对象所属的类必须要进行序列化,实现Serializable 接口,Serializable接口没有任何方法 ,是一个标记接口
       2.如果对象所属的类的成员变量发生改变,你在读取原来的对象是就会报错,如果想要解决报错,保证serialVersionUID是唯一。
       3.如果你不想将某些信息存入到磁盘 就可以同过transient关键字修饰成员变量
       4.如果一个类中引用了另外的一个类,那么另外的这个类也要实现Serializable接口。

管道流

作用:可以进行两个线程之间的通信。一个线程作为管道输出流,另一个作为管道输入流。

转换流

作用:用于字节流和字符流的转化。

InputStreamReader:将字节流转换为字符流

OutputStreamWriter:将字符流转换为字节流

Java I/O流的总结