java核心技术之IO流(五)BufferedReader和BufferedWriter
来源:互联网 发布:如何查淘宝买家信誉 编辑:程序博客网 时间:2024/06/13 11:00
简单的说明
一般小的字符(char)文件的读取和写入数据,我们使用FileReader和FileWriter类就可以实现了,但是对于大的字符(char)文件的读取和写入数据,性能就会有很大的问题,我们一般选择BufferedReader和BufferedWriter来处理,也就是说BufferedReader和BufferedWriter主要的目的是提高字符(char)文件的内容读取和写入的性能。
BufferedReader和BufferedWriter
BufferedReader类
构造方法:
BufferedReader(Reader in)
创建一个有8192的字符(char)的缓存区
BufferedReader(Reader in, int size)
创建一个有size大小字符(char)的缓存区
关键方法:
read()
read(char[] buffer, int offset, int length)
readLine()——读取一行数据
常用使用方式:
BufferedReader buf = new BufferedReader(new FileReader("file.java"));
BufferedWriter类
构造方法:
BufferedWriter(Writer out)
创建一个有8192的字符(char)的缓存区
BufferedWriter(Writer out, int size)
创建一个有size大小字符(char)的缓存区
关键方法:
write(int oneChar)
write(String str, int offset, int count)
write(char[] buffer, int offset, int count)
newLine()——插入新的一行
flush()
主要是用来把缓存区的数据刷新到文件中去
常用使用方式:
BufferedWriter buf = new BufferedWriter(new FileWriter("file.java"));
一个测试的Demo
定义三个方法:
(1)testBufferedWrite方法—测试BufferedWriter
BufferedWriter的使用方法:
//1.创建一个输入字符文件
//2.定义一个FileWriter
//3.定义一个BufferedWriter
//4.写的操作
//5.关闭对应的流
(2)testBufferedReader方法—-向文件读内容
BufferedReader的使用方法:
//1.创建一个File文件
//2.定义一个FileReader
//3.定义一个BufferedReader
//4.执行读的操作
读的操作有二种方式,一各是按char来读,一种是按行来说。
一般来说按行来读是更简单,更有效的。
//5.关闭对应的流,可以只关闭最外面的流
(3)CopyFile方法—-复制字符文件
//1.定义输入和输出的文件
//2.分别定义FileReader,FileWriter
//3.分别定义BufferedReader,BufferedWriter
//4.实现复制功能
//5.关闭对应 的流,可以只关闭最外面的缓存流就可以
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class BufferedReaderBufferedWrite { //复制字符文件 public static void CopyFile(String src,String des){ //3.分别定义BufferedReader,BufferedWriter BufferedReader br = null; BufferedWriter bw = null; try { //1.定义二个文件 File fsrc = new File(src); File fdes = new File(des); //2.分别定义FileReader,FileWriter FileReader fr = new FileReader(fsrc); FileWriter fw = new FileWriter(fdes); br = new BufferedReader(fr); bw = new BufferedWriter(fw); //4.复制操作 char[] c = new char[2]; int len; while((len = br.read(c)) != -1){ bw.write(c, 0, len); bw.flush(); } } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }finally{ //5.关闭对应 的流,可以只关闭最外面的缓存流就可以 if(bw != null){ try { bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(br != null){ try { br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //测试BufferedReader public static void testBufferedReader(){ //3.定义一个BufferedReader BufferedReader bf = null; try { //1.定义一个文件 File f1= new File("testBufferedWrite.txt"); //2.定义一个FileReader FileReader fr = new FileReader(f1); bf = new BufferedReader(fr); //4.执行读的操作 //方式一// char[] c = new char[2];// int len;// while((len = bf.read(c)) != -1){// System.out.print(c);// } //方式二 String str; while((str = bf.readLine()) != null){ System.out.print(str); System.out.println(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //5.关闭对应的流,可以只关闭最外面的流 if(bf != null){ try { bf.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } //测试BufferedWriter public static void testBufferedWrite(){ //3.定义一个BufferedWriter BufferedWriter bw = null; try { //1.定义一个文件 File f1 = new File("testBufferedWrite.txt"); //2.定义一个FileWriter FileWriter fw = new FileWriter(f1); bw = new BufferedWriter(fw); //4.写的操作 String str = "测试BufferedWriter"; bw.write(str); bw.newLine(); bw.write(str); bw.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ //5.关闭对应的流 if(bw != null){ try { bw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }}
调用:
//BufferedWriter使用样例BufferedReaderBufferedWrite.testBufferedWrite(); //测试BufferedReaderBufferedReaderBufferedWrite.testBufferedReader(); //复制字符文件BufferedReaderBufferedWrite.CopyFile("testBufferedWrite.txt", "testBufferedWrite_copy.txt");
参考资料:
1.BufferedWriterapi文档
android_sdk_docs_offline/reference/java/io/BufferedWriter.html
2.BufferedReader文档
android_sdk_docs_offline/reference/java/io/BufferedReader.html
3.BufferedOutputStream与BufferedReader视频
http://edu.csdn.net/course/detail/805/10967?auto_start=1
- java核心技术之IO流(五)BufferedReader和BufferedWriter
- java基础之IO流中的BufferedReader和BufferedWriter
- Java IO BufferedReader和BufferedWriter
- 字符串输入输出流:java.io.BufferedReader和java.io.BufferedWriter
- Java的IO流--BufferedReader和BufferedWriter,BufferedInputStream和BufferedOutputStream
- java学习之文件IO流,BufferedReader/BufferedWriter学习
- Java IO 流的学习之 BufferedReader/BufferedWriter
- JAVA IO缓冲区(BufferedWriter 和 BufferedReader)
- java Io 缓冲流 BufferedReader BufferedWriter 笔记
- Java基础知识IO流(BufferedWriter&BufferedReader)
- Java笔记 - IO流(BufferedWriter,BufferedReader)
- IO流——BufferedWriter和BufferedReader
- java BufferedReader和BufferedWriter
- Java BufferedReader 和 BufferedWriter
- I/O流之--BufferedWriter 和 BufferedReader
- java中的缓冲流BufferedWriter和BufferedReader
- JAVA之IO技术BufferedReader,BufferedWriter的缓冲区技术的使用和原理
- Java之IO(二)FileReader、FileWriter、BufferedReader、BufferedWriter
- js阻止页面加载,添加判断是否执行
- RTMP发送H264及AAC的音视频
- svn merge本质和用法
- 12 个 CSS 高级技巧汇总
- 当我们向下兼容2.2系统的时候出现'Theme.Base.AppCompat.Dialog.FixedSize'错误的解决办法
- java核心技术之IO流(五)BufferedReader和BufferedWriter
- Bresenham 中点画圆算法实现
- shell中如何判断两个字符串相等
- redhat6.4 安装FastDFS5.03、5.05
- 第一天开通,记录下ueditor的大小设置
- popwindow 位置和动画
- leetcode31:Next Permutation
- 设计模式笔记——装饰者模式
- hibernate 注解@Formula解析和使用简介