JavaIO流之缓冲流效率比较,和字符缓冲流的作用

介绍:在javaIO阶段学习中,我认为缓冲流完全没有花费大的精力去进行学习,因为缓冲流其最初设计的主要作用是帮助字节流和字符流增强其传输效率而言的,但是经过测试发现,缓冲流能干的事情,我们通过字节流或者字符流增加一个数组同样可以做到,而且效率提升的更高,在java中有字节缓冲流、字符缓冲流,主要目的是提高读写效率。当然字符缓冲流的作用一次可以读取一行,也不容忽视。

一、字节缓冲流

输入(读/input):

构造方法:public BufferedInputStream(InputStream);创建一个缓冲输入流对象,其参数是基本的字节输入流,InputStream是抽象类,所以我们要传入其实现子类,也就是FileInputStream

范例:

BufferedInputStream bis=new BufferedInputStream(new FileInputStream("D:/src.exe"));//我这里的地址写的绝对地址

输出(写/output);

构造方法 : public BufferedOutputStream(OutputStream out) : 创建一个缓冲输出流对象, 其参数是基本的字节输出流,OutputStream是一个抽象类,所以为们要传入其子类也就是FileOutputStream
范例:

BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("D:/src1.exe"));

案例:拷贝文件测试效率

普通字节流,单个字节拷贝

在这里插入图片描述

字节流+自定义数组拷贝

普通字节拷贝文件大小314M
耗时:2404毫秒

自定义字节数组设置为8192个,进行拷贝
文件大小314M,耗时:436毫秒

在这里插入图片描述

字节缓冲流进行拷贝

文件大小314M
耗时:8407毫秒

在这里插入图片描述

缓冲流+自定义数组进行拷贝

文件大小314M
耗时:406毫秒

在这里插入图片描述

二、字符缓冲流

输入(Read):

1、构造方法 : public BufferedReader(Reader in) : 创建高效的字符输入流对象, 参数需要接收一个基本的字符输入流。
2、特殊功能 : public String readLine() : 包含该行内容的字符串,不包含换行符,如果已到达流末尾,则返回 null

输出(Write):

1、构造方法 : public BufferedWriter(Writer out) : 创建高效的字符输出流对象, 参数需要接收基本字符输出流。
2、特殊功能 : public void newLine() : 写入一个行分隔符,这个行分隔符是由系统决定的(具有跨平台作用,在mac(\r)、windows(\n、\r、\r\n)、linux(\n)中换行各不相同)。

注意:缓冲流不具备读写功能, 只提供缓冲区, 读写操作,还是需要依赖于基本的流

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值