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 相关文章推荐
Spring Data JPA使用JPQL与原生SQL进行查询的操作
Jun 15 Java/Android
Java中常用解析工具jackson及fastjson的使用
Jun 28 Java/Android
Java基础之this关键字的使用
Jun 30 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
Sep 25 Java/Android
SpringCloud之@FeignClient()注解的使用方式
Sep 25 Java/Android
OpenCV实现普通阈值
Nov 17 Java/Android
关于Mybatis中SQL节点的深入解析
Mar 19 Java/Android
Java 超详细讲解IO操作字节流与字符流
Mar 25 Java/Android
Flutter集成高德地图并添加自定义Maker的实践
Apr 07 Java/Android
Java线程的6种状态与生命周期
May 11 Java/Android
向Spring IOC 容器动态注册bean实现方式
Jul 15 Java/Android
Java 超详细讲解十大排序算法面试无忧
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
SpringCloud Function SpEL注入漏洞分析及环境搭建
SpringBoot中获取profile的方法详解
Apr 08 #Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
Java 垃圾回收超详细讲解记忆集和卡表
Java 常见的限流算法详细分析并实现
You might like
php图片加中文水印实现代码分享
2012/10/31 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
JavaScript 创建对象
2009/07/17 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
jquery实现图片放大点击切换
2017/06/06 jQuery
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
详解Vue的异步更新实现原理
2020/12/22 Vue.js
Python验证码识别处理实例
2015/12/28 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
Django卸载之后重新安装的方法
2017/03/15 Python
python实现简单飞行棋
2020/02/06 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
Python几种常见算法汇总
2020/06/02 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
买卖协议书范本
2014/04/21 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS