import java.io.IOException; import java.io.File; import java.io.FileWriter; import java.io.FileReader; /** * @Lin 2018.5.8 FileWriter & FileReader * 1. 先用 FileWriter 将数据写入文件(可以自动创建文件) * 2. 使用 FileReader 读取文件数据 */ public class FileWriter_ReaderTest { public static void main(String[] args) throws IOException { /* step 1 */ FileWriter fw = new FileWriter(new File("./file/File_W_R.txt"), true); fw.write("你好,FileWriter"); fw.append("\n你好,FileReader"); // append方法的源码只是比write方法对了 参数.toString()的调用,主要用在char类型 fw.flush(); // 刷新缓冲区,默认大小为8K fw.close(); /* step 2 */ FileReader fr = new FileReader(new File("./file/File_W_R.txt")); char[] c = new char[100]; fr.read(c); String str = new String(c, 0, c.length); System.out.println(str); fr.close(); } }
Console输出为: 你好,FileWriter 你好,FileReader
1. 创建FileWriter对象时添加参数 append=true是为了不覆盖原文件数据,不加默认为false,再写入时等价于先清楚文件数据。
2. FileWriter 对象的append方法只是多了 参数csq.toString();
/** JDK 源码 **/ public Writer append(CharSequence csq) throws IOException { if (csq == null) write("null"); else write(csq.toString()); return this; }3. FileReader是从文件输入,其中对象的read方法的参数就是被输入的字符变量或者数组。