BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以很效率比没有缓冲区的很高。

一、BufferedWriter 类

构造方法:bufferedWriter bf = new bufferedWriter(Writer out );

主要方法:void write(char ch);//写入单个字符。

                  void write(char []cbuf,int off,int len)//写入字符数据的某一部分。

                  void write(String s,int off,int len)//写入字符串的某一部分。

                  void newLine()//写入一个行分隔符。

                  void flush();//刷新该流中的缓冲。将缓冲数据写到目的文件中去。

                  void close();//关闭此流,再关闭前会先刷新他。

package Buffered;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class BufferedWriterDemo {public static void main(String[] args) throws IOException {FileWriter fw = new FileWriter("Buffered.txt");
//      fw.write("ok168");
//      fw.close();/*** 为了提高写入的效率,使用了字符流的缓冲区。* 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。*/BufferedWriter bufw = new BufferedWriter(fw);//使用缓冲区中的方法将数据写入到缓冲区中。bufw.write("hello world !");bufw.newLine();bufw.newLine();bufw.write("!hello world !");bufw.write("!hello world !");//使用缓冲区中的方法,将数据刷新到目的地文件中去。bufw.flush();//关闭缓冲区,同时关闭了fw流对象bufw.close(); }
}

二、BufferedReader类。

构造方法:BufferedReader br = new BufferReader(Reader in);

主要方法:int read();//读取单个字符。

                  int read(char[] cbuf,int off,int len);//将字符读入到数组的某一部分。返回读取的字符数。达到尾部 ,返回-1。

                  String readLine();                        //读取一个文本行。

                  void close();                                //关闭该流。并释放与该流相关的所有资源。

package Buffered;import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class BufferedWriterDemo {public static void main(String[] args) throws IOException {FileWriter fw = new FileWriter("Buffered.txt");
//      fw.write("ok168");
//      fw.close();/*** 为了提高写入的效率,使用了字符流的缓冲区。* 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。*/BufferedWriter bufw = new BufferedWriter(fw);//使用缓冲区中的方法将数据写入到缓冲区中。bufw.write("hello world !");bufw.newLine();bufw.newLine();bufw.write("!hello world !");bufw.write("!hello world !");//使用缓冲区中的方法,将数据刷新到目的地文件中去。bufw.flush();//关闭缓冲区,同时关闭了fw流对象bufw.close(); }
}

自定义的一个myBufferedReader类。

package Buffered;import java.io.FileReader;
import java.io.IOException;public class MyBufferedReader {private FileReader fr;private char []buf = new char[1024];private int count = 0;private int pos = 0;public MyBufferedReader(FileReader f){this.fr = f;        }public int myRead() throws IOException{if(count == 0){count = fr.read(buf);pos = 0;}if(count<0)return -1;int ch = buf[pos++];count--;return ch; }public String myReadLine() throws IOException{StringBuilder sb = new StringBuilder();int ch = 0;while ((ch = myRead()) != -1) {if (ch == '\r')continue;if (ch == '\n')return sb.toString();sb.append((char) ch);if(count == 0)return sb.toString();           }return null;}public void myClose() throws IOException {fr.close();}
}

使用bufferedReader 和bufferWriter方法写的一个复制文本的小程序。

package IOtest;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;public class TextCopyByBuf {/*** 首先创建读取字符数据流对象关联所要复制的文件。* 创建缓冲区对象关联流对象。* 从缓冲区中将字符创建并写入到要目的文件中。* @throws IOException */public static void main(String[] args) throws IOException {FileReader fr = new FileReader("C:\\demo.txt");FileWriter fw = new FileWriter("D:\\love.txt");BufferedReader bufr = new BufferedReader(fr);BufferedWriter bufw = new BufferedWriter(fw);//一行一行的寫。String line = null;while((line = bufr.readLine()) != null){bufw.write(line);bufw.newLine();bufw.flush();}/*    一個字節一個字節的寫。int ch = 0;while((ch = bufr.read())!=-1){bufw.write(ch);}*/bufr.close();bufw.close();}
}

BufferedWriter 和 BufferedReader 的基本用法,附演示程序。以及一个复制文本文件的程序相关推荐

  1. Java_io体系之BufferedWriter、BufferedReader简介、走进源码及示例——16

    Java_io体系之BufferedWriter.BufferedReader简介.走进源码及示例--16 一:BufferedWriter 1.类功能简介: BufferedWriter.缓存字符输 ...

  2. Java IO(五)——字符流进阶及BufferedWriter、BufferedReader

    一.字符流和字节流的区别 拿一下上一篇文章的例子: 复制代码 复制代码 1 package com.demo.io; 2 3 import java.io.File; 4 import java.io ...

  3. Java IO流之缓冲流:字节缓冲流BufferedOutputStream BufferedInputStream、字符缓冲流BufferedWriter、BufferedReader

    文章目录 缓冲流 1.字节缓冲流 构造方法 2.字符缓冲流 构造方法 练习:文章段落排序 缓冲流 缓冲流在基础的字节流和字符流上做功能的增强,能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储 ...

  4. 【githubshare】Linux sed 命令行常用汇总:useful-sed,收集了 sed 命令行的诸多常见用法,可用于快速处理文本文件

    Linux sed 命令行常用汇总:useful-sed,收集了 sed 命令行的诸多常见用法,可用于快速处理文本文件. 仓库内提供了不少示例,如输出文件首行内容,正则匹配替换文本内容.删除空文件.删 ...

  5. (附源码)springboot健康饮食小程序 毕业设计280920

    健康饮食小程序的设计与实现 摘 要 本文设计了一种基于微信小程序的健康饮食小程序小程序,系统为人们提供了方便快捷.即用即搜的健康食谱服务,包括健康食谱,医疗资讯.注册登录等,用户能够方便快捷地查看资讯 ...

  6. 牛客网Java刷题知识点之字节缓冲区练习之从A处复制文本文件到B处(BufferedReader、BufferedWriter)、复制文本文件的原理图解...

    不多说,直接上干货! CopyTextByBufTest.java package zhouls.bigdata.DataFeatureSelection.test;import java.io.Bu ...

  7. 字符流缓冲区的使用之BufferedWriter和BufferedReader

    从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取,代码中使用了输入缓冲区的特有的方法:readLine(),获取一行文本数据 import java.io.BufferedRea ...

  8. 总结BufferedReader类的用法

    第一部分:java中的new BufferedReader(new InputStreamReader(System.in)) 对这句话的详细解释和理解: System.in的类型可以归结为节点流.字 ...

  9. Java字符缓冲区BufferedWriter和BufferedReader详解

    1.BufferedWriter java.io.BufferedWriter extends WriterBufferedWriter:字符缓冲输出流继承自父类的共性成员方法:- void writ ...

最新文章

  1. mysql查找执行效率慢的SQL语句
  2. python(numpy,pandas2)——numpy 运算
  3. “人工智能创新大讲堂”全日程发布 | 听大咖畅谈智能社会
  4. android修改xml变量值,Android中XML的基本操作(增、删、改、查)
  5. redhat oracle 开机自启动
  6. python开发mes系统_MES系统开发
  7. 当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的...
  8. 并发容器——ConcurrentHashMap
  9. php循环的应用案例,php for循环的实例分享
  10. SharePoint 解决管理员密码修改后的问题
  11. [JDBC] MySQL中数据的增查删改(二)
  12. 其他学习笔记(一)——MySQL基础配置+可视化工具安装与破解
  13. 使用 Shell (命令备忘)
  14. NS2中认知无线电仿真
  15. Adobe Flash CS4 序列号-Adobe Dreamweaver CS4 序列号
  16. 李白的藏头诗鸿蒙圣安卓,李白藏头诗生成器
  17. Maxwell和Simplorer联合仿真设置注意事项
  18. CAN发送和接收数据(回环测试,ok)
  19. 关于“无穷”的概念---数学笔记“无穷”
  20. BJFU_数据结构习题_257统计字符出现的频度

热门文章

  1. 诗与远方:无题(六十五)- 杂诗
  2. Django项目调用外部程序soffice报错subprocess.CalledProcessError: Command 'soffice --headless --convert-to pdf
  3. JavaScript语言基础(一)
  4. vue部分样式无法修改
  5. Java延时队列DelayedQueue
  6. SpringBoot继承TkMapper通用Mapper
  7. CSS盒子的三种类型(border-box、content-box)
  8. C语言sizeof和strlen的含义,用法和区别
  9. java作业不能运行_从Windows运行时,YARN作业失败
  10. 腾讯云linux vnc端口,用腾讯云手把手教你用VNC搭建Ubuntu可视化界面(一)