2. 字节流
2.1字节输出流
FileOutputStream 写入数据的步骤:
1)创建字节输出流对象。
2)写入数据
void write(byte[] b)
将 b.length 个字节从指定 byte 数组写入此文件输出流中。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
void write(int b)
将指定字节写入此文件输出流。
3)释放资源
2.2字节输入流
FileInputStream 读取数据的步骤:
1)创建字节输入流对象。
2)读取数据
int read()
从此输入流中读取一个数据字节。
int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
int read(byte[] b, int off, int len)
从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
直接打印在控制台上,都有可能出现中文乱码
3) 释放资源
2.3 字节流复制文本文件 OK
2.4 字节流复制图片(二进制流数据) OK
字符流复制图片(二进制流数据) 丢失数据
步骤:
封装数据源以及目的地
读写操作
释放资源
3.缓冲流
对基本的流进行封装,增加缓冲区的功能,增加效率
BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));