BufferedReader和BufferedWriter类创建的对象称为缓冲输入、输出流,两者增强了读写文件的能力。BufferedReader流和BufferedWriter流,二者的源和目的地必须是字符输入流reader和字符输出流writer。
BufferedReader和BufferedWriter类的构造方法分别是:
BufferedReader(Reader in);
BufferedWriter(Writer out);
BufferedReader流能够读取文本行,方法是readLine();
BufferedWriter流有一个独特的想问你那写入一个回车符的方法newLine();
写一个小例子加深记忆:
import java.io.*;
import java.util.StringTokenizer;
public class Example10_7 {
public static void main(String[] args) {
File fRead = new File("D:/JavaProject/JavaShiYan/src/com/java/zhang10/","test.txt");
File fWrite = new File("D:/JavaProject/JavaShiYan/src/com/java/zhang10/","result.txt");
try{
Reader in = new FileReader(fRead);
BufferedReader bufferedReader = new BufferedReader(in);
Writer out = new FileWriter(fWrite,true);
BufferedWriter bufferedWriter = new BufferedWriter(out);
String str = null;
while ((str=bufferedReader.readLine())!=null){
// StringTokenizer会分割句子,以指定的符号或者标记,默认可以是空格回车等
StringTokenizer fenxi = new StringTokenizer(str);
// StringTokenizer类的countTokens方法会统计分割后的字符串
int count = fenxi.countTokens();
str = str+" 句子中单词的个数"+count;
bufferedWriter.write(str);
bufferedWriter.newLine();
}
bufferedWriter.close();
out.close();
in = new FileReader(fRead);
bufferedReader = new BufferedReader(in);
String s = null;
System.out.println(fWrite.getName()+"内容是:");
while ((s=bufferedReader.readLine())!=null){
System.out.println(s);
}
bufferedReader.close();
in.close();
}catch (IOException e){
System.out.println(e);
}
}
}
test文件存在内容且内容是这样:
I am chinese I love CHINA Happy every day
result文件是空文件,运行后是这样;
I am chinese 句子中单词的个数3 I love CHINA 句子中单词的个数3 Happy every day 句子中单词的个数3