全屏

10.2.4 缓冲字符流


【专业IT培训机构,真正零首付入学www.bjsxt.com


      BufferedReader/BufferedWriter增加了缓存机制,大大提高了读写文本文件的效率,同时,提供了更方便的按行读取的方法:readLine(); 处理文本时,我们一般可以使用缓冲字符流。

【示例10-8】使用BufferedReader与BufferedWriter实现文本文件的复制

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class TestBufferedFileCopy2 {
	public static void main(String[] args) {
		// 注:处理文本文件时,实际开发中可以用如下写法,简单高效!!
		FileReader fr = null;
		FileWriter fw = null;
		BufferedReader br = null;
		BufferedWriter bw = null;
		String tempString = "";
		try {
			fr = new FileReader("d:/a.txt");
			fw = new FileWriter("d:/d.txt");
			//使用缓冲字符流进行包装
			br = new BufferedReader(fr);
			bw = new BufferedWriter(fw);
			//BufferedReader提供了更方便的readLine()方法,直接按行读取文本
			//br.readLine()方法的返回值是一个字符串对象,即文本中的一行内容
			while ((tempString = br.readLine()) != null) {
				//将读取的一行字符串写入文件中
				bw.write(tempString);
				//下次写入之前先换行,否则会在上一行后边继续追加,而不是另起一行
				bw.newLine();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (bw != null) {
					bw.close();
				}
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			try {
				if (fw != null) {
					fw.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				if (fr != null) {
					fr.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}

注意

      1. readLine()方法是BufferedReader特有的方法,可以对文本文件进行更加方便的读取操作。

      2. 写入一行后要记得使用newLine()方法换行。

分类导航
点击按住视频可拖动

缩小

关闭

  • 正在学习
  • 北京总部地址:北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
  • 咨询电话:400-009-1906 010-56233821
  • Copyright 2007-2015 北京尚学堂科技有限公司
  • 京ICP备13018289号-1 京公网安备11010802015183