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方法的参数就是被输入的字符变量或者数组。