Java字符缓冲流BufferedWriter


Posted in Java/Android onApril 09, 2022

一、字符缓冲流

BufferedWriter:文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。可以指定缓冲区大小,或者可以接受默认大小。 默认值足够大,可用于大多数用途。

构造方法:

BufferedWriter(Writer out) 创建使用默认大小的输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz) 创建一个新的缓冲字符输出流,使用给定大小的输出缓冲区。

BufferedReader:从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。可以指定缓冲区大小,或者可以使用默认大小。 默认值足够大,可用于大多数用途。

构造方法:

BufferedReader(Reader in) 创建使用默认大小的输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz) 创建使用指定大小的输入缓冲区的缓冲字符输入流。

例子-字符缓冲流实现复制Java文件:

public class BufferedWriteReaderDemo {
    public static void main(String[] args) throws IOException {
        //使用字符缓冲流实现一个文件的复制
        //使用子类FileWrite\FileReader替代OutputStreamWrite\InputStreamReader
        BufferedReader br=new BufferedReader(new FileReader("E:\\abc.txt"));
        BufferedWriter bw=new BufferedWriter(new FileWriter("F:\\abcdef.txt"));
        //读取数据
//        int len;
//        while ((len=br.read())!=-1){
//            bw.write(len);
//        }
        int len;
        char[] ch=new char[1024];
        while ((len=br.read(ch))!=-1){
            bw.write(ch);
        }
        //释放资源
        br.close();
        bw.close();
    }
}

二、字符缓冲流的特有方法

BufferedWriter:

void newLine():写一行行分隔符,行分隔符字符串由系统属性定义

BufferedReader:

public String readLine():读一行文字。结果包含行的内容的字符串,不包括任何行终止字符;如果流的结尾已经到达,则值为null

例子-字符缓冲流特有方法实现复制Java文件:

public class Demo02 {
    public static void main(String[] args) throws IOException {
        //字符缓冲流特有方法实现复制Java文件
        BufferedReader br=new BufferedReader(new FileReader("E:\\abc.txt"));
        BufferedWriter bw=new BufferedWriter(new FileWriter("F:\\aaa.txt"));
        //读写数据
        String line;
        while ((line=br.readLine())!=null){
            bw.write(line);
            bw.newLine();//换行
            bw.flush();//刷新缓存区
        }
       
        //释放资源
        br.close();
        bw.close();
    }
}

字符流只能复制文本数据,有5种方式,一般采用字符缓冲流的特有功能

Java/Android 相关文章推荐
Java Shutdown Hook场景使用及源码分析
Jun 15 Java/Android
浅析NIO系列之TCP
Jun 15 Java/Android
Spring Data JPA的Audit功能审计数据库的变更
Jun 26 Java/Android
java解析XML详解
Jul 09 Java/Android
mybatis中注解与xml配置的对应关系和对比分析
Aug 04 Java/Android
Netty分布式客户端处理接入事件handle源码解析
Mar 25 Java/Android
Java详细解析==和equals的区别
Apr 07 Java/Android
Android自定义双向滑动控件
Apr 19 Java/Android
Mybatis-Plus 使用 @TableField 自动填充日期
Apr 26 Java/Android
Spring Data JPA框架持久化存储数据到数据库
Apr 28 Java/Android
Java死锁的排查
May 11 Java/Android
Android Studio 计算器开发
May 20 Java/Android
Java 超详细讲解十大排序算法面试无忧
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
SpringCloud Function SpEL注入漏洞分析及环境搭建
SpringBoot中获取profile的方法详解
Apr 08 #Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
Java 垃圾回收超详细讲解记忆集和卡表
Java 常见的限流算法详细分析并实现
You might like
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
微信小程序block的使用教程
2018/04/01 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
python3 线性回归验证方法
2019/07/09 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
什么是servlet链?
2014/07/13 面试题
婚前保证书
2014/04/29 职场文书
小学庆六一活动总结
2014/08/28 职场文书
加入学生会自荐书
2015/03/05 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技