目录
3.IO流涉及40多个类,实际是从下面四个抽象基类派生而成。
处理非文本文字节节流:bufferredInputStream,bufferredoutputStream
处理文本文件字符流:bufferedRead,bufferedWritler
1.路径
绝对路径:带有盘符的路径
相对路径:1.在main方法中,相对路径是到project; 2.在单元测试方法中,相对路径到model
2.IO流划分:
1.输入流,输出流
2.字节流(8bit),字符流(16bit)。字节流一般可用户处理文件(音频,视频);字符流用于处理文本(txt)。
3.节点流,处理流
3.IO流涉及40多个类,实际是从下面四个抽象基类派生而成。
4.常见的流
5.字节流,字符流
1. 将A文件的内容复制到B文件中
使用字节流,用byte数组将读取的文件写入,减少与磁盘的交互次数。内存级别速度更快
上图中的代码字节流可替换成FileReader,FileWrilter。数组需要换成char[]。
ByteArrayOutPutStream将数据写入数组,并返回数组。
6.缓冲流(处理流的一种)
6.1. 概念:
用于大文件。创建一个临时区域,将读取的文件存入临时区,再一次性写入磁盘,减少了磁盘的IO,从而加快速度。
6.2. 缓冲流
处理非文本文字节节流:bufferredInputStream,bufferredoutputStream
处理文本文件字符流:bufferedRead,bufferedWritler
巧记:把上面的File换成buffered。
buffer缓冲流速度会快的原因:默认有一个数组去存储数据(8kb);
bufferedReader里,新增了一个readLine方法,每次读取一行,但是读取的数据是不会换行的。
7. 转换流
7.1 概念:
将字节流和字符流之前的转换称为转换流
字符编码:字符/字符串/字符数组--->字节/字节数组(看得懂的--->看不懂的)
字符解码:字节/字节数组--->字符/字符串/字符数组(看不懂的--->看得懂的)
❗编码用使用的字符集必须要和解码时候的字符集一致。
此节可设计编码格式的知识点,详细知识点转到->1.基础语法
8.数据流、对象流
8.1. 数据流使用较少,了解即可。
8.2. 对象流概念和作用:
api:ObjectInputStream、ObjectOutputStream
可读写基本数据类型的变量、引用数据类型的变量。这里说的读和写,其实就是对象的序列化机制。
额外知识-对象的序列化机制:
允许把内存中的java对象转换成平台无关的二进制流,允许把这种二进制流持久的保存在磁盘上,或者通过网络将这种二进制流传输到另外一个网络节点。//其他程序获取了这种二进制流,就可以把它恢复成java对象。