package com.io.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* 使用字符流来FileReader读取、FileWriter写入文件 会用到BufferedReader和BufferedWriter读写缓冲区
*
* @author St01
*
*/
public class CharStreamTest {
public static void main(String[] args) {
CharStreamTest cs = new CharStreamTest();
cs.read("E:/qwerty/p01.txt");
cs.write("E:/qwerty/p01.txt");
cs.read("E:/qwerty/p01.txt");
}
public void read(String url) {
try {
//创建FileReader文件阅读器对象
FileReader fr = new FileReader(url);
//创建BufferedReader阅读器缓冲区对象
BufferedReader br = new BufferedReader(fr);
String line = null;
//创建StringBuffer字符串缓冲区对象
StringBuffer sb = new StringBuffer();
//br.readLine()读取一个文本行,返回值是String类型
//返回包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null
//while ((line = br.readLine()) != null) 给line赋值,并判断line是否为空
while ((line = br.readLine()) != null) {
// System.out.println(line);
sb.append(line);//将br.readLine()返回的字符串添加到StringBuffer中
sb.append("\r\n");//追加换行
}
//打印StringBuffer中的内容
System.out.println(sb);
//先关闭BufferedReader,再关闭FileReader
br.close();
fr.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void write(String url) {
try {
//分别创建FileWriter和BufferedWriter对象
FileWriter fw = new FileWriter(url);
BufferedWriter bw = new BufferedWriter(fw);
//循环写入
for(int i=1;i<=100;i++) {
bw.write("这是第"+i+"行。。。。。");
bw.newLine();//换行
}
bw.flush();//清空缓冲区
bw.close();
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}