Java中的输入与输出流详解(5)

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();
        }
    }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0717ce79f1828b16de0c05fb901ec02e.html