36. 缓冲流--读写文件

BufferedReader/BufferedWriter
BufferedInputStream/BufferedOutputStream
缓冲流–读写文件
在这里插入图片描述
在这里插入图片描述

package com.senior.iostream;

import org.junit.Test;

import java.io.*;

/**
 * @author eden
 * @Description
 * @create projectTest-com.senior.iostream:2021-05-13-18:07
 * @since
 * 缓冲流可以提高流的读取和写入的速度
 */
public class BufferStream {

    @Test
    public void test(){
        BufferedInputStream bufferedInputStream = null;
        BufferedOutputStream bufferedOutputStream = null;
        FileInputStream fileInputStream = null;
        FileOutputStream fileOutputStream = null;
        long startTime = System.currentTimeMillis();
        try {
            //1.造文件
            File file = new File("pic.jpeg");
            File file1 = new File("pic2.jpeg");
            //2.造流
            //2.1造字节流
            //2.1造缓冲流
            fileInputStream = new FileInputStream(file);
            fileOutputStream = new FileOutputStream(file1);

            bufferedInputStream = new BufferedInputStream(fileInputStream);
            bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
            //3.复制操作
            byte[] byteBuffer = new byte[1024];
            int len;
            while((len = bufferedInputStream.read(byteBuffer))!=-1)
            {
                bufferedOutputStream.write(byteBuffer,0,len);
//                bufferedOutputStream.flush();//刷新缓冲区
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //4.关闭流:由于节点流外面又包了一层缓冲流
            //要求:关闭时要求先关闭外层再关闭内层
            //说明:关闭外层流的同时,内层流也会关闭,所以可以省略不写
            try {
                bufferedInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                bufferedOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
        long endTime = System.currentTimeMillis();
        System.out.println(endTime-startTime);

    }
}


总结:

抽象基类节点流(文件流)缓冲流(处理流的一种)
InputStreamFileInputStream – (read(byte[] buf))BufferedInputStream – (read(byte[] buf))
OutputStreamFileOutputStream – (write(byte[] buf,0,len))BufferedOutputStream – (write(byte[] buf,0,len))
ReaderFileReader – (read(char[] buf))BufferedReader – (read(char[] buf))
WriterFileWriter – (write(char[] buf,0,len))BufferedWriter – (write(char[] buf,0,len))

FileInputStream/FileOutputStream:字节流,处理非文本文件(图片,视频, mp3, .doc, .ppt …)
FileReader/FileWriter: 字符流,处理文本文件(.txt .java .c/cpp .py …)

该博客图片来源于尚硅谷宋老师教学课件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值