javaIO
Java IO
Java IO中常用的类
整个java.io包中最重要的就是五个类和一个接口。五个类是指:File、OutputStream、InputStream、Writer、Reader;一个接口是指Serializable
java I/O主要包含三个部分:
1.流式部分—IO的主体部分;
2.非流式部分—主要包含一些辅助流式部分的类,如:File类、RandomAccessFile类和FileDescriptor类
3.其他类—文件读取部分的与安全相关的类,如:SerializablePermission类,以及与本地操作系统相关的文件系统类,如:FileSystem类和Win
32FileSystem类和WinNTFileSystem类
主要的类如下
File(文件特征与管理):用于文件或者目录的描述信息,例如:生成新目录,修改文件名,删除文件,判断文件所在路径等。
InputStream(二进制格式操作)抽象类,基于字节的输入,是所有输入流的父类。
OutputStream(二进制格式操作)抽象类,基于字节的输出,是所有输出流的父类。
Reader(文件格式操作):抽象类,基于字符的输入
Writer(文件格式操作):抽象类,基于字符的输出
RandomAccessFile(随机文件操作):一个独立的类,直接继承Object,功能丰富,可以从文件的任意位置进行存取(输入输出)操作。
字节流和字符流的区别
字节流没有缓冲区,是直接输出的,而字符流是输出到缓冲区的。因此在输出时,字节流不调用close()方法时,信息已经输出了,而字符流只有在调用close()方法关闭缓冲区时,信息才输出。要想字符流在未关闭时输出信息,则需要手动调用flush()方法。
读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。


