本文是总结的java IO的基本知识点。
扩展学习链接
1. Java IO流详解
2. 深入理解java中的IO
1、IO介绍
Java IO库将传统的byte-oriented库,增加了一些char-oriented、unicode-based I/O类,nio类(new io)也增加了一些功能和性能。
2、File类
File类有一个欺诈性的名字,其实用FilePath应该更合理。
该类表现出一个特殊文件的名字或者一个目录下一组文件的名字。如果表示一组文件的名字,就可以调用list()方法-返回String数组。
3、IO流是什么?
IO流就是Input流和Output流,IO流主要用于处理设备间的数据传输。
4、IO流的两种分类方式
字节流和字符流:InputStream和Reader
输入流和输出流:InputStream和OutputStream
5、IO流常用的基类
InputStream和OutputStream
6、字符流的抽象基类
Reader和Writer(字符输入和字符数出)
7、所有基类的派生子类都是以父类作为后缀。
8、字符流中融合了编码表,也就是系统默认的编码表一般是GBK
9、字符流与字节流的区别
- 字符流只处理文本数据,字节流处理媒体数据
- 字节流中最小数据单位是字节byte
- 字符流中最小数据单位是字符=2字节byte,(java中采用unicode编码)
10、java.io包中五大类和接口
File、OutputStream、InputStream、Write、Reader
Serializable接口
11、Java I/O主要的三个部分:
1.流式部分――IO的主体部分;
2.非流式部分――主要包含一些辅助流式部分的类,如:File类、RandomAccessFile类和FileDescriptor等类;
3.其他类–文件读取部分的与安全相关的类。
12、RandomAccessFile(随机文件操作):
一个独立的类,直接继承至Object.它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。
13、流的概念和作用
流:代表能产出数据的数据源对象(O)和能接收数据的数据源对象(I)
作用:为数据源和目的地搭建一个传输通道
14、字节流和字符流的区别
- 节流没有缓冲区,是直接输出的,而字符流是输出到缓冲区的。因此在输出时,字节流不调用colse()方法时,信息已经输出了,而字符流只有在调用close()方法关闭缓冲区时,信息才输出。要想字符流在未关闭时输出信息,则需要手动调用flush()方法。
- 读写单位不同:字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。
- 处理对象不同:字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。
- 结论:只要是处理纯文本数据,就优先考虑使用字符流。除此之外都使用字节流。