知识点
- FileReader类:用来读取字符文件的便捷类;FileWirter类:顾名思义就是用来写入字符文件的便捷类。
- BufferedReader类:从字符输入流读取文本,缓冲各个字符,从而实现字符,数组和行的高效读取。
- BufferedWriter类:将文本写入字符输出流,缓冲各个字符,从而提供单个字符,数组和字符串的高效写入。
- readLine():String类型,读取一个文本行,也就是一行一行读的意思。
- writer():写入文本。
- newLine():写入一个行分隔符。
- flush():刷新该缓冲流。我理解的就是把存在缓冲区的流都发送出去,不必等到缓冲区满。
- close():关闭此流,但是要先刷新它。
总代码
代码的功能是将hello.txt 中的内容写到reader.txt中。
package day15;
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 fileBuffer {
public static void main(String[] args) throws IOException {
//FileReader fr=new FileReader(("D:\\JavaEE\\JavaSE\\Demo\\hello.txt"));
FileReader fr=new FileReader(new File("D:\\JavaEE\\JavaSE\\Demo\\hello.txt"))
//FileWriter fw=new FileWriter(("D:\\JavaEE\\JavaSE\\Demo\\reader.txt"));//写入时如果不想被覆盖掉就在结尾加trueFileWriter fw=new FileWriter(("D:\\JavaEE\\JavaSE\\Demo\\reader.txt"),true);BufferedReader bufr=new BufferedReader(fr);BufferedWriter bufw=new BufferedWriter(fw);String line=null;while((line=bufr.readLine())!=null) {bufw.write(line);bufw.newLine();bufw.flush();} bufr.close(); bufw.close(); }
}
分析
- 这段代码中两行表示的是一个意思,都是对fr赋值。
//FileReader fr=new FileReader(("D:\\JavaEE\\JavaSE\\Demo\\hello.txt"));
FileReader fr=new FileReader(new File("D:\\JavaEE\\JavaSE\\Demo\\hello.txt"))
- 这两行代码也是同样意思。需要注意的是加true的表示不会被覆盖,就是前面写的不会被覆盖掉,不加true的则会被覆盖掉。
//写入时如果不想被覆盖掉就在结尾加true
FileWriter fw=new FileWriter(("D:\\JavaEE\\JavaSE\\Demo\\reader.txt"),true);
- while循环里面表示的是如果读入的一行不为空则就写入该行内容,换行,推出,一直循环下去,直到读的数据中最后一行为空则退出whlie循环,最后是关闭数据流。