原创 大常运维
FileWriter(文件字符输出流):
作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去。
构造函数和方法:
代码:
package cn.chang.d1_char_stream;import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;/*** 目标:掌握文件字符输出流,写字符数据出去*/
public class FileWriterTest2 {public static void main(String[] args) {try(// 创建一个文件字符输出流管道与目标文件接通Writer fw = new FileWriter("io-app2/src/chang02.txt");) {// 1. public void write(int c);fw.write('a');fw.write(97);fw.write('磊');fw.write("\r\n");// 2. public void write(String c);fw.write("我爱你中国abc");// 3. public void write(String c, int pos, int len);fw.write("我爱你中国abc", 0, 5);// 4. public void write(char[] buffer);char[] buffer = {'黑', '龙', '江', 'a', 'b', 'c'};fw.write(buffer);fw.write("\r\n");// 5. public void write(char[] buffer, int pos, int len);char[] buffer1 = {'黑', '龙', '江', 'a', 'b', 'c'};fw.write(buffer1, 0, 3);} catch (Exception e) {e.printStackTrace();}}
}
运行结果:
fw.write("\r\n"); // 换行
数据追加,后面有个参数append改成true。这边不再演示。
字符输出流使用时的注意事项:
字符输出流写出数据后,必须刷新流,或者关闭流,写出去的数据才能生效。
数据都是先写到缓冲区中,缓冲区在内存中,写到缓冲区速度都是很快的,最后通过某种机制把数据通过系统调用从缓冲区同步到文件中,整体性能会好很多。
我们怎么通知缓冲区同步到文件中呢?
通过关闭流或者刷新流。
package cn.chang.d1_char_stream;import java.io.FileWriter;
import java.io.Writer;/*** 目标:搞清楚字符输出流使用时的注意事项*/
public class FileWriterTest3 {public static void main(String[] args) throws Exception {Writer fw = new FileWriter("io-app2/src/chang03.txt");// 写字符数据出去fw.write('a');fw.write('b');fw.write('c');fw.write('d');fw.write("\r\n");fw.write("我爱你中国");fw.write("\r\n");fw.write("我爱你中国");// 刷新流 关闭流
// fw.flush();
//
// fw.write("\r\n");
// fw.write("张三");
// fw.flush();fw.close();}
}
关闭流:包含刷新流。
刷新流还是能再刷数据,关闭流就不行。
另外,一旦缓冲区写满了,会自动刷新数据。
参考🔗
https://mp.weixin.qq.com/s/gua8cJIc8HUi6XN_cgZzQw