字符流的过滤流
1、字符缓冲流——BufferedReader/BufferedWriter
1、构造方法
BufferedReader(Reader in)
创建使用默认大小的输入缓冲区的缓冲字符输入流。
BufferedWriter(Writer out)
创建使用默认大小的输出缓冲区的缓冲字符输出流。
2、常用方法
BufferedReader:
String readLine()
读一行文字。
BufferedWriter:
void newLine() : 不同的操作系统 换行符不一样
写一行行分隔符。
//案例:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class Demo12 {
public static void main(String[] args) throws Exception{
//创建两个File对象
File srcFile = new File("file/a.txt");
//创建节点字符流
FileReader fileReader = new FileReader(srcFile);
//增强功能
BufferedReader bufferedReader = new BufferedReader(fileReader);
// String s1 = bufferedReader.readLine();
// System.out.println(s1);
//
// String s2 = bufferedReader.readLine();
// System.out.println(s2);
// String s;
// while ((s = bufferedReader.readLine())!=null){
// System.out.println(s);
// }
bufferedReader.close();
}
}
//案例2:
import java.io.*;
public class Demo12 {
public static void main(String[] args) throws Exception{
//创建两个File对象
File srcFile = new File("file/a.txt");
//创建字符流 节点流
FileWriter fileWriter = new FileWriter(srcFile);
//过滤流
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write("春眠不觉晓");
bufferedWriter.newLine();
bufferedWriter.write("处处蚊子咬");
bufferedWriter.newLine();
bufferedWriter.write("夜来风雨声");
bufferedWriter.newLine();
bufferedWriter.write("大包知多少");
bufferedWriter.newLine();
bufferedWriter.close();
}
}
2、PrintWriter流
1、概述
PrintWriter介绍:
是Writer子类,是字符流,有一个缓冲区,就涉及到一个刷新的功能。
和PrintStream一样,也是有很多的print和println的方法,其中打印的方法也基本相同
提供了带有自动刷新的功能,但是开启自动刷新仅仅对println()、printf()、format()方法有效
2、构造方法
方法名 |
说明 |
PrintWriter(File file) |
使用指定文件创建不具有自动行刷新的新 PrintWriter。 |
PrintWriter(OutputStream out) |
根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter。 |
PrintWriter(OutputStream out, boolean autoFlush) |
通过现有的 OutputStream 创建新的 PrintWriter。 |
PrintWriter(String fileName) |
创建具有指定文件名称且不带自动行刷新的新 PrintWriter。 |
PrintWriter(Writer out) |
创建不带自动行刷新的新 PrintWriter。 |
PrintWriter(Writer out, boolean autoFlush) |
创建新 PrintWriter。自动刷新 |
//案例:
import java.awt.datatransfer.FlavorEvent;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
public class Demo13 {
public static void main(String[] args) throws Exception {
File file = new File("file/a.txt");
//PrintWriter printWriter = new PrintWriter(file);
FileOutputStream fileOutputStream = new FileOutputStream(file);
PrintWriter printWriter = new PrintWriter(fileOutputStream,true);
//PrintWriter printWriter = new PrintWriter(System.out);
printWriter.println("所说的发生发撒打发十分大");
}
}