字符输出流Writer最顶级父类
java.io.writer:字符输出流是所有字符输出流的最顶层的父类,是一个抽象类 共性的成员方法: abstract void close() 关闭此流,但要先刷新它。 abstract void flush() 刷新该流的缓冲。 void write(char[] cbuf) 写入字符数组。 abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。 void write(int c) 写入单个字符。 void write(String str) 写入字符串。 void write(String str, int off, int len) 写入字符串的某一部分。 子类 :往文件中写字符的流 FileWriter java.io.FileWriter extends OutputStreamWriter extends Writer FileWriter: 文件字符输出流 作用:把内存中的字符数据写入到文件中 FileWriter的构造方法: FileWriter(File file) 根据给定的 File 对象构造一个 FileWriter 对象。 FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象。 参数:写入数据的目的地 String fileName:文件的路径 File file :是一个文件 构造方法的作用: 1.会创建一个FileWriter对象 2.会根据构造方法中传递的文件/文件的路径,创建文件 注意写是创建文件 3.会把FileWriter对象指向创建好的文件
字符输出流的使用步骤:(重点) 字符流与字节流的最大区别是 :不是把内容直接写入到文件中而是先写入到内存中去 如果不调用flush(); close();方法的话 内容在内存中不能进入到文件 所以不能缺
1.创建一个FileWriter对象,构造方法中绑定写入数据的目的地
2.使用FileWriter中的方法writer,把数据写入到内存缓冲区中 (这里有一个字符转换为字节的过程)
3.使用FileWriter中的方法flush,把内存缓冲区中的数据刷新到文件中
4.释放资源(会先把内存缓存区中的数据刷新到文件中)
public class Demo01Writer {
public static void main(String[] args) throws IOException {
// 1.创建一个FileWriter对象,构造方法中绑定写入数据的目的地
FileWriter fw = new FileWriter("D:\\IdeaProjects\\新建文件夹\\F.txt");
// 2.使用FileWriter中的方法writer,把数据写入到内存缓冲区中 (这里有一个字符转换为字节的过程)
fw.write(97); //发现没数据 因为一开始写入内存中(内存缓冲区去) 这里字符转化为字节如果不调用flush 或者close 不会进入目的文件
//而且注意这里是个int
// 3.使用FileWriter中的方法flush,把内存缓冲区中的数据刷新到文件中
fw.flush();//不写也行 close也会把内容刷新到文件中
// 4.释放资源(会先把内存缓存区中的数据刷新到文件中)
fw.close();