2. 字节输入输出流
计算机中都是二进制数据,一个字节是8个2进制位。字节可以表示所有的数据,比如文本,音频,视频。
图片,都是作为字节存在的。也就是说字节流处理的数据非常多。
最基本的字节输入输出流:
InputStream和OutputStream类是Java语言里用来处理以位(bit)为主的流。
可以对音频、图像、文本等一切二进制文件进行操作处理。
按字节处理,所以对Unicode编码解析会造成乱码,所以一般不用来处理文本文件(txt等)
读取文件的步骤:
1. 创建指定文件的输入流
2. 通过流读入内容
3. 用完之后及时关闭流
InputStream读取文件的方法:
1. read() 一次读取一个字节,读到文件末尾返回-1
2. read(byte[] arr) 使用read方法时,流需要读一次就处理一次,可以将读到的数据装入到字节数组中,一次性操作数组,可以提高效率
3. read(byte[] arr, int index, int length) arr显然是一个byte类型数组,当做容器来使用;
index,是指定从数组的什么位置开始存字节;length,希望读多少个
其实就是把数组的一部分当做流的容器来使用。告诉容器,从什么地方开始装,要装多少。
如果一次性读到的内容有很多空格,解决方法:使用第三种方法,限制读取的长度
写入文件的步骤:
1. 创建指定文件的输出流
2. 通过流写入内容
3. 用完之后及时关闭流
OutputStream写入文件的方法:
1. 使用write(int b)方法,一次写出一个字节
2. 使用write(byte[] b),就是使用缓冲,提高效率
如果直接写入文件,可能造成覆盖的效果,解决方法:构造方法中的boolean参数,设置为true