Java IO: 字符流的Buffered和Filter
作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)
本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader、BufferedWriter、FilterReader、FilterWriter。
BufferedReader
原文链接
BufferedReader能为字符输入流提供缓冲区,可以提高许多IO处理的速度。你可以一次读取一大块的数据,而不需要每次从网络或者磁盘中一次读取一个字节。特别是在访问大量磁盘数据时,缓冲通常会让IO快上许多。
BufferedReader和BufferedInputStream的主要区别在于,BufferedReader操作字符,而BufferedInputStream操作原始字节。只需要把Reader包装到BufferedReader中,就可以为Reader添加缓冲区(译者注:默认缓冲区大小为8192字节,即8KB)。代码如下:
1
|
Reader input = new BufferedReader( new FileReader( "c:\\data\\input-file.txt" ));
|
你也可以通过传递构造函数的第二个参数,指定缓冲区大小,代码如下:
1
|
Reader input = new BufferedReader( new FileReader( "c:\\data\\input-file.txt" ), 8 * 1024 );
|
这个例子设置了8KB的缓冲区。最好把缓冲区大小设置成1024字节的整数倍,这样能更高效地利用内置缓冲区的磁盘。
除了能够为输入流提供缓冲区以外,其余方面BufferedReader基本与Reader类似。BufferedReader还有一个额外readLine()方法,可以方便地一次性读取一整行字符。
BufferedWriter
原文链接
与BufferedReader类似,BufferedWriter可以为输出流提供缓冲区。可以构造一个使用默认大小缓冲区的BufferedWriter(译者注:默认缓冲区大小8 * 1024B),代码如下:
1
|
Writer writer = new BufferedWriter( new FileWriter( "c:\\data\\output-file.txt" ));
|
也可以手动设置缓冲区大小,代码如下:
1
|
Writer writer = new BufferedWriter( new FileWriter( "c:\\data\\output-file.txt" ), 8 * 1024 );
|
为了更好地使用内置缓冲区的磁盘,同样建议把缓冲区大小设置成1024的整数倍。除了能够为输出流提供缓冲区以外,其余方面BufferedWriter基本与Writer类似。类似地,BufferedWriter也提供了writeLine()方法,能够把一行字符写入到底层的字符输出流中。值得注意是,你需要手动flush()方法确保写入到此输出流的数据真正写入到磁盘或者网络中。
FilterReader
原文链接
与FilterInputStream类似,FilterReader是实现自定义过滤输入字符流的基类,基本上它仅仅只是简单覆盖了Reader中的所有方法。
就我自己而言,我没发现这个类明显的用途。除了构造函数取一个Reader变量作为参数之外,我没看到FilterReader任何对Reader新增或者修改的地方。如果你选择继承FilterReader实现自定义的类,同样也可以直接继承自Reader从而避免额外的类层级结构。
FilterWriter
原文链接
内容同FilterReader,不再赘述。
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Java IO: 字符流的Buffered和Filter
转载于:https://www.cnblogs.com/dassmeta/p/5323946.html
Java IO: 字符流的Buffered和Filter相关推荐
- Java IO: 字符流的Piped和CharArray
转载自 Java IO: 字符流的Piped和CharArray 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍管道与字符数组相 ...
- Java io字符流读入英文_Java IO 系列教程(四)-字符输入流(2)
本文介绍字符输入流 在前面一节中,我们向一个文件中写入了一些字符,通过图片可以看出总共是6个中文字符和一个换行,总共是20个字节,可以推算出字符编码是utf-8,每个汉子占3三个字节.本文就用字符输入 ...
- java io字符流_Java IO流字符流简介及基本使用
Java IO流字符流简介及常用字符流的基本使用 字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能.在编码中我们常用的输出字符流有File ...
- Java.IO 字符流读写文件
点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达! 一.序 上一篇我们谈了 java.IO 文件字节流读写操作(能懂系列Java.io文件字节流读写)大家应该都很熟悉了.但是中文和英文在字符 ...
- Java IO - 字符流
需要读取的目标文件: // 目标文件 String pathName = "d:/z.txt"; File file = new File(pathName); 使用FileRea ...
- JAVA.IO字符流
从字节流和字符流的导向图来,它们之间是相互对应的,比如CharArrayReader和ByteArrayInputStream 字节流和字符流的转化:InputStreamReader可以将Input ...
- java -io字符流FileWrite操作演示
FileWriter字符输出流演示: /* * FiileWriter 字符流的操作 * FileWriter 的构造方法 可传递 File类型 还可以传递String类型 * * 方法 : * wr ...
- java binaryreader_Java字符流与字节流区别与用法分析
本文实例讲述了Java字符流与字节流区别与用法.分享给大家供大家参考,具体如下: 字节流与字符流主要的区别是他们的的处理方式 流分类: 1.Java的字节流 InputStream是所有字节输入流的祖 ...
- java中字符流和字节流的区别_java中字节流和字符流有哪些区别
java中字节流和字符流的区别有:1.定义不同:2.结尾不同:3.处理方式不同:4.缓冲区不同:5.编码方式不同.字节流默认不使用缓冲区,而字符流使用缓冲区.字节流采用ASCII编码,字符流采用uni ...
最新文章
- js 月份加6个月_美国切削工具6月份订单较上月增加10.1
- 2个基础操作案例带你入门MySQL
- 第三季-第23课-Linux网络编程模型
- Windows操作系统装机必备软件,值得收藏!
- Vue使用debugger
- Java中的私有权限(private)
- 动手智能小车记(5)-坦克底盘硬件模块大杂烩
- android微信运动页面开发,微信小程序仿微信运动步数排行(交互)
- Kotlin学习笔记12——数据类和密封类
- python,全自动获取图片,并下载你喜欢的美女图片
- 让老师们哭笑不得的天才学生们
- 客户标签不能只是个“标签”
- python token_python 产生token及token验证的方法
- i512450h和i512500h对比区别大吗
- 微信小程序wxs将数字转换为汉字
- pwn入门系列-ret2libc2
- Linux下安装navicat
- Arduino实验九——感光灯实验
- 格式化字符串漏洞利用时计算的偏移到底是什么?
- Glamhive创始人Stephanie Sprangers与明星造型师Johnny Wujek和Nicole Chavez、明星发型师Andrew Fitzsimons和时尚影响者Claire Su
热门文章
- 获取授时时间_gps时间同步服务器在通信行业的解决方案
- 公需科目必须学吗_化学难吗?
- 计算机程序输入x是3求输出七年级的题,如图所示是计算机程序计算,若开始输入,则最后输出的结果是 ▲ . ——青夏教育精英家教网——...
- python 查找指定字符在字符串中的次数(全)
- 不能执行autowired_想用@Autowired注入static静态成员?官方不推荐你却还偏要这么做...
- 《系统集成项目管理工程师》必背100个知识点-28范围管理计划和需求管理计划...
- 笔记-信息系统开发基础-架构设计-软件系统架构视图
- 软件开发定律系列之布鲁克斯定律有感
- Vue+Openlayers+Draw实现画笔切换功能,切换画笔为点、线、面
- Chrome浏览器Json查看插件JsonHandle下载以及无法安装插件的解决方法