FileWriter字符输出流
既然是字符输出流就表明输出的是字符,因此我们不必考虑一个字符有几个字节这个问题
关系图:
老规矩看一下构造方法
FileWriter(File file) 给一个File对象构造一个FileWriter对象。
FileWriter(File file, boolean append) 给一个File对象构造一个FileWriter对象。
FileWriter(FileDescriptor fd) 构造与文件描述符关联的FileWriter对象。
FileWriter(String fileName) 构造一个给定文件名的FileWriter对象。
FileWriter(String fileName, boolean append) 构造一个FileWriter对象,给出一个带有布尔值的文件名,
表示是否附加写入的数据
大白话解释
FileWriter 构造方法就是创建该对象,参数表明创建对象时要指定输出的地址,既然要输出我总要先知道输出的目的地址吧,第二个参数表明我在输出的时候是否要覆盖源内容(默认为false覆盖)可以加一个参数true表示追加不覆盖。
详细看一下成员方法
//FileWriter的成员方法writer都没有返回值类型
write(char[] ch) //一次写入一个字符数组
write(int c) //写入int类型为对应的字符
write(String s) //写入字符串
write(char[] ch,int off,int len) //写入字符数组指定偏移量和长度
write(String str,int off,int len) //写入从字符串off索引开始,len个长度的字符
写代码演示
File file = new File("D:\\www\\love.txt"); //定义一个File类的对象
Writer out = new FileWriter(file); //多态的写法
//简写
// writer fi =new FileWriter("D:\\www\\love.txt");
fi.write(97); //97-->对应的字符a 输出a
fi.write("\r\n"); //换行
fi.write('a'); //a
fi.write('我'); //我
fi.write("我爱中国"); //我爱中国
fi.write("我爱中国",2,2); //中国
//定义一个字符数组
char[] ch = {'我','爱','世','界'};
fi.write(ch); //我爱世界
fi.write(ch,2,2); //世界
fi.flush(); //刷新
fi.write("可以继续输出"); //可以继续输出
fi.close(); //关闭流
fi.write(97); //会报错,因为此时的流已经关闭。java.io.IOException: Stream closed
**flush :刷新缓冲区,流对象可以继续使用
-close :关闭流,释放系统资源。关闭前会刷新缓冲区。**
小结:
字符输出流可以写字符数据出去,总共有5个方法写字符。
覆盖管道:
Writer fw = new FileWriter("Day10Demo/src/dlei03.txt"); // 覆盖数据管道
追加数据管道:
Writer fw = new FileWriter("Day10Demo/src/dlei03.txt",true); // 追加数据管道
换行: fw.write("\r\n"); // 换行
读写字符文件数据建议使用字符流。