5)、引入缓冲刘读取文件
文件字节输入/输出流是以字节为单位进行读/写操作的,这使得文件流的效率很低,这是就需要用到BufferedInputStream和BufferdOutputStream类。当输入数据时,数据以块为单位读入缓冲区,伺候如有读操作,则直接访问缓冲区。当输出数据时,数据不直接向输出流输出数据,而是将数据先写入缓冲区,当缓冲区的数据满时,才将缓冲区中的数据写入输出流中。这样就提高了I/O操作的效率。
它们都是InputStream/OutputStream的子类,其构造方式如下:
BufferedInputStream(已创建好的输入数据流对象)
BufferedOutputStream(已创建好的输出数据流对象)
下面是一段演示缓冲流的代码:
public staticvoid main(String[] args) {
FileInputStream fis;
FileOutputStream fos;
BufferedInputStream bis;
BufferedOutputStream bos;
int i;
try {
fis = newFileInputStream("D:\\桌面\\桌面\\安卓开发工具\\学习笔记\\test1.txt");
fos = newFileOutputStream("D:\\桌面\\桌面\\安卓开发工具\\学习笔记\\test2.txt");
bis = new BufferedInputStream(fis);
bos = newBufferedOutputStream(fos);
//从输入数据流中读取一个字节
i = bis.read();
while (i != -1) {
bos.write(i);
bos.flush();
i = bis.read();
}
fis.close();
fos.close();
bis.close();
bos.close();
System.err.println("运行结束");
} catch (Exception e) {
e.printStackTrace();
}
}