IO流
- 字节流
- 字符流
- 对象流
- 随机访问流
1:字节流:操控字节,会出现乱码
InputStream读:
(1).fileInputStream:read():一个字节一个字节的读。返回值是读取的那个字节值。read(byte[]):每次兑取一个字节数组,内容都在字节数组中,返回值读取的长度。read(byte[] ,index,len):每次读取一个字节数组,从哪里开始读多长 返回的是长度。
(2)BufferedInputstream:高效流:内部多了一个缓冲区,每次要从缓冲区
(3)Datainputstream : 多了对基本数据类型的操控.。注意:多读少的问题。
OutputStream写:
(1)fileOutputStream:文件没有则新建,每次是否要新建boolean,write():写一个字节,
write(byte[]):写一个字节数。write(byte[],index,len):字节数组中的内容写多长
(2)BufferedOutputStream:高效:缓冲区:但是每次要从缓冲区中刷新。
(3)Dataoutputstream.
2.字符流
reader:
(1)inputstreamReader:设置编码集,字节流转化字符流的中间流,转化流.。
(2)fileReader操控文件。
(3)BufferedReader读一行。
writer
(1)对应。
(2)BufferedWriter,newLine:写一行==\r\n
3随机访问流
字节流字符流的特点都有,可以操控指针,可读可写。
4.对象流
(1)序列化:类体要有可以序列化的标识(serializable)
把Java对象转换为字节序列的过程
(2)反序列化:把字节序列恢复为Java对象的过程