字符流---FileWriter字符写流


一、FileWriter类概述

FileWriterjava.io包中的字符输出流类,将字符数据写入文本文件。继承自OutputStreamWriter,默认使用系统字符编码(如UTF-8)。特点:

  • 若文件不存在会自动创建
  • 默认覆盖文件内容(可通过追加模式修改)

二、核心方法及使用

1. 构造函数

FileReader大同小异,其实几乎所有的流的构造方法都大同小异;

方法签名

说明

FileWriter(String fileName)

通过路径创建(覆盖模式)

FileWriter(String fileName, boolean append)

追加模式(true=追加)

FileWriter(File file)

通过File对象创建

示例:

// 覆盖模式(默认)
FileWriter writer1 = new FileWriter("output.txt");

// 追加模式(true)
FileWriter writer2 = new FileWriter("log.txt", true);

// 通过File对象
File file = new File("data.dat");
FileWriter writer3 = new FileWriter(file);

2. write() 方法

基本上这些流的逻辑都差不多;参照一下下面的代码案例就全部清晰了;

方法签名

说明

void write(int c)

写入单个字符(ASCII码);直接写单个字

符也是可以的

void write(char[] cbuf)

写入整个字符数组

void write(String str)

写入整个字符串

void write(char[] cbuf, int off, int len)

写入数组指定区间

void write(String str, int off, int len)

写入字符串子段

示例1:逐字符写入

FileWriter writer = new FileWriter("chars.txt")
writer.write('H'); // 写入单个字符
writer.write(69);  // ASCII码'E'(69 → 'E')

示例2:批量写入

FileWriter给人最好的感觉就是他可以直接写入字符串,很人性,很符合人的逻辑;

char[] data = {'J','a','v','a',' ','编','程'};
String text = "\n学习FileWriter";

FileWriter writer = new FileWriter("demo.txt", true)
writer.write(data);       // 写入字符数组
writer.write(text);//直接写入字符串也是可以的,一看就很人性 
writer.write(text, 1, 5); // 写入"习FileW"


3. flush() 与 close()
  • flush():强制将缓冲区数据写入文件(不关闭流)
  • close():先执行flush(),再释放资源

手动刷新示例:

FileWriter writer = new FileWriter("buffer.txt");
writer.write("数据仍在内存缓冲区");
writer.flush(); // 立即写入磁盘
writer.write("追加内容"); 
writer.close(); // 最终全部写入

三、注意事项

  1. 资源释放:始终使用try-with-resources或手动close()
  2. 性能优化:单次写入超过8000字符时,建议直接使用write(String)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值