字符流的输入输出BufferedReader和BufferedWriter

知识点

  • 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的则会被覆盖掉。
//FileWriter fw=new FileWriter(("D:\\JavaEE\\JavaSE\\Demo\\reader.txt"));
 //写入时如果不想被覆盖掉就在结尾加true 

 FileWriter fw=new FileWriter(("D:\\JavaEE\\JavaSE\\Demo\\reader.txt"),true);

  • while循环里面表示的是如果读入的一行不为空则就写入该行内容,换行,推出,一直循环下去,直到读的数据中最后一行为空则退出whlie循环,最后是关闭数据流。


你可能感兴趣的:(字符流的输入输出BufferedReader和BufferedWriter)