JAVA I/O系统
一、Java I/O系统的定义:统一放在Java.io包和Java.nio包中的类。
1, 流<stream>的概念:当程序需要读取数据的时候,就会开启 一个通向源设备的流,这个数据源设备可以是文件,内存和网络连接。
2,流的基本特性:流质和方向。
3,流的分类:
a 按数据流的方向分:输入流(从数据源读取数据到程序中,io包中的输入流都继承自InputStream或Reader。);
输出流(将数据从程序写入数据目的地,io包中的输出流都继承自OutputStream或Writer。)
b 按处理数据的最小单位的不同分:字节流(最小单位是byte,io包中的字节流都继承自抽象类InputStream或OutputStream。);
字符流(最小单位是char,io包中的字节流都继承自抽象类Reader或Writer。)
注:读写文字型的数据时通过字符流更有效率,更方便。
c 按照流的功能分:节点流<低级流>(可以直接向一个特定的数据源读或写数据的流);
处理流<高级流>(不直接连接到设备,而是连接在已存在的流<节点流或处理流>之上)
注:所有I/O类中的具体类都继承自四个抽象类:InputStream,OutputStream,Reader,Writer。
二、所有I/O操作的步骤:
1,建立流
2、操作流
3、关闭流
三、文件类(File)可以操作文件,但它不是流,它不能操作文件的内容。
四、字节流:用于处理二进制文件。
1、高级字节流:
a、按功能分:
过滤流类(缓冲流,数据流,计数,推回输入流,打印输出流);
对象流(序列化,反序列化);
注:为了实现对象序列化,对应的类必须实现java.io.serializable接口;transient所修饰的属性不能被序列化。
合并;
字符流;
五、可用以下方法解决,transient所修饰的属性不能被序列化的问题:
第一步:
public void readObject(java.io.ObjectInputStream in)throws IOException,classNotFoundException{
//内容
}
第二步:
public void writeObject(java.io.ObjectOutputStream out)throws IOException{
//内容
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。