java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装。当对文件或其他目标频繁读写或操作效率低,效能差。这时使用缓冲流能够更高效的读写信息。因为缓冲流先将数据缓存起来,然后一起写入或读取出来。所以说,缓冲流还是很重要的,在IO操作时记得加上缓冲流提升性能。

缓冲流分为字节和字符缓冲流
字节缓冲流为:
BufferedInputStream—字节输入缓冲流
BufferedOutputStream—字节输出缓冲流
字符缓冲流为:
BufferedReader—字符输入缓冲流
BufferedWriter—字符输出缓冲流
下面主要介绍这四种缓冲流的使用。
一. 字节缓冲流
1.BufferedOutputStream—字节输出缓冲流
BufferedOutputStream类实现缓冲的输出了,通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必每一个字节写入都调用底层系统。
示例代码:
public static void main(String[] args) {
try {
//创建字节输出流实例
OutputStream out=new FileOutputStream("L:\\test.txt");
//根据字节输出流构建字节缓冲流
BufferedOutputStream buf=new BufferedOutputStream(out);
String data="好好学习,天天向上";
buf.write(data.getBytes());//写入缓冲区
buf.flush();//刷新缓冲区,即把内容写入
//关闭流
buf.close();//关闭缓冲流时,也会刷新一次缓冲区
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
2.BufferedInputStream—字节输入缓冲流
BufferedInputStream为别的输入流添加缓冲功能,在创建BufferedInputStream时会创建一个内部缓冲数组,用于缓冲数据,提高性能。
示例代码:
public static void main(String[] args) {
try {
//创建字节输入流实例
InputStream in=new FileInputStream("L:\\test.txt");
//根据字节输入流构建字节缓冲流
BufferedInputStream buf=new BufferedInputStream(in);
byte[]bytes=new byte[1024];
//数据读取
int len=-1;
StringBuffer sb=new StringBuffer();
while((len=buf.read(bytes))!=-1)
{
sb.append(new String(bytes,0,len));
}
System.out.println("内容为:"+sb);
//关闭流
buf.close();
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
二. 字符缓冲流
1.BufferedWriter—字符输出缓冲流
将文本写入字符输出流,缓冲各个字符,从而提供高效的写入。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。
示例代码:
public static void main(String[] args) {
try {
Writer w=new FileWriter("L:\\test.txt");
//根据字符输出流创建字符缓冲流
BufferedWriter buf=new BufferedWriter(w);
//写入数据
buf.write("只要功夫深铁杵磨成针");
//刷新流
buf.flush();
//关闭流
buf.close();
w.close();
} catch (IOException e) {
e.printStackTrace();
}
}
2.BufferedReader—字符输入缓冲流
从字符输入流中读取信息,缓冲各个字符,从而实现高效读取。可以指定缓冲区的大小,一般情况下,默认的缓冲区大小就足够了。默认大小为8192.
示例代码:
public static void main(String[] args) {
try {
Reader r=new FileReader("L:\\test.txt");
//根据字符输入流创建字符缓冲流
BufferedReader buf=new BufferedReader(r);
char [] data=new char[512];
//数据读取
int len=-1;
StringBuilder sb=new StringBuilder();
while((len=buf.read(data))!=-1)
{
sb.append(new String(data,0,len));
}
System.out.println("内容是: "+sb);
//关闭流
buf.close();
r.close();
} catch (IOException e) {
e.printStackTrace();
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# java
# IO流
# 缓冲流
# Java中的缓冲流详细解析
# Java的字节缓冲流与字符缓冲流解析
# Java学习之缓冲流的原理详解
# java 实现字节流和字节缓冲流读写文件时间对比
# Java字节缓冲流原理与用法详解
# Java IO流之字符缓冲流实例详解
# java使用缓冲流复制文件的方法
# Java中缓冲流的使用与性能提升(让文件操作更高效)
# 也会
# 很重要
# 或其他
# 足够了
# 天天向上
# 先将
# 装上
# 创建一个
# 好好学习
# 就可以
# 应用程序
# 提高效率
# 这四
# 而不必
# 即把
# 只是在
# 只要功夫深铁杵磨成针
# args
# OutputStream
# pre
相关文章:
建站之星logo尺寸如何设置最合适?
网站设计制作企业有哪些,抖音官网主页怎么设置?
广平建站公司哪家专业可靠?如何选择?
如何在服务器上配置二级域名建站?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
如何在腾讯云免费申请建站?
建站之星代理如何获取技术支持?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
宝塔建站无法访问?如何排查配置与端口问题?
Android滚轮选择时间控件使用详解
魔方云NAT建站如何实现端口转发?
济南企业网站制作公司,济南社保单位网上缴费步骤?
北京网站制作网页,网站升级改版需要多久?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
在线制作视频的网站有哪些,电脑如何制作视频短片?
制作销售网站教学视频,销售网站有哪些?
兔展官网 在线制作,怎样制作微信请帖?
学校为何禁止电信移动建设网站?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
如何在IIS服务器上快速部署高效网站?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何用PHP工具快速搭建高效网站?
自助网站制作软件,个人如何自助建网站?
如何在IIS中新建站点并配置端口与物理路径?
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何确认建站备案号应放置的具体位置?
建站之星后台密码遗忘如何找回?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
高端云建站费用究竟需要多少预算?
如何快速搭建FTP站点实现文件共享?
网站企业制作流程,用什么语言做企业网站比较好?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
七夕网站制作视频,七夕大促活动怎么报名?
网站制作壁纸教程视频,电脑壁纸网站?
如何制作一个表白网站视频,关于勇敢表白的小标题?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
贸易公司网站制作流程,出口贸易网站设计怎么做?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何在Ubuntu系统下快速搭建WordPress个人网站?
c++ stringstream用法详解_c++字符串与数字转换利器
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何用景安虚拟主机手机版绑定域名建站?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
网站网页制作专业公司,怎样制作自己的网页?
C#如何序列化对象为XML XmlSerializer用法
*请认真填写需求信息,我们会在24小时内与您取得联系。