BufferedReader 字符读取流缓冲区

2016-09-28  本文已影响525人  大虾咪

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

//BufferedReader 字符读取流缓冲区: 该缓冲区提供了一次读一行的方法readLine(),方便对于文本数据的获取

//当返回null时,表示读到文件末尾

//readline方法返回的时候只返回回车符之前的数据内容,并不返回回车符。

public class BufferedReaderDemo {

public static void main(String[] args) {

// TODO Auto-generated method stub

//(1)

/*

FileReader fr = null;

BufferedReader br = null;

try {

//创建一个读取流对象和文件相关联

fr = new FileReader("src/BufferedReaderDemo.java");

//为了提高效率,加入缓冲技术,将字符读取流对象作为参数传递给缓冲对象的构造函数

br = new BufferedReader(fr);

String linStr = null;

try {

while ((linStr = br.readLine())!=null) {

System.out.println(linStr);

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

try {

br.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

};

}

*/

//(2)通过缓冲区复制一个.java文件

BufferedWriter bw = null;

BufferedReader br = null;

try {

bw = new BufferedWriter(new FileWriter("copy.txt"));

br = new BufferedReader(new FileReader("src/BufferedReaderDemo.java"));

String line = null;

//readLine()方法的原理 无论读一行,获取多个字符。其实最终

//都是在硬盘上一个一个读取。所以最终使用的还是read方法一次读一个的方法

while ((line=br.readLine())!=null) {

System.out.println(line);

bw.write(line);

bw.newLine();

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

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();

}

}

}

}

上一篇 下一篇

猜你喜欢

热点阅读