缓冲字符流
java.io.BufferedWriter
java.io.BufferedReader
java.io.PrintWriter带有自行刷新的缓冲字符流输出流(经常用)
向文本文件pe.txt中写出三行字符串
PW直接提供了向文件中写入字符串的构造方法
PrintWriter(String path)、PrintWriter(File file)、PrintWriter(Writer writer,Boolean autoFlush)(自动刷新功能)、PrintWriter(String path,String charset).
charset:编码格式,writer:转换流,autoFlush:自动进行刷新,注意使用println方法有效。
PrintWriter的构造方法中若第一个参数为流,那儿就支持一个重载构造方法,允许再传入一个boolean值类型的参数,若该值为true,则具有自动行刷新,也就是每当使用println()方法写出一行字符串后就会自动flush.
PrintWriter pe = new PrintWriter("pe.txt","UTF-8");
pe.println("你不努力,别人努力");
pe.println("你努力,别人更努力");
pe.println("所以,你需要比别人更努力");
System.out.println("写入完毕!");
pe.flush();//强制输出
//输出字节流
FileOutputStream fos = new FileOutputStream("pw2.txt");
//输出转换流
OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
//输出缓冲字符流
BufferedWriter br = new BufferedWriter(osw);
//字符流
PrintWriter pw = new PrintWriter(br,true);
//上面的可以写成一句话,选用一种即可(下面这种简单些)
PrintWriter pw = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("pw2.txt"),"UTF-8")),true);
pw.println("脚踏实地");
pw.println("仰望星空");
System.out.println("写入完毕!");
//利用字符复制文件
BufferedReader br = new BufferedReader(
new InputStreamReader(
new FileInputStream("C:/user/001.png"),"UTF-8"));
PrintWriter pw = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("C:/user/01.png"),"UTF-8")));
String line = null;
while((line=br.readLine()!=null){
pw.println(line);
}
System.out.println("复制完毕!");
br.close();
pw.close();