admin管理员组文章数量:1442525
Java文件写入详解:FileWriter和BufferedWriter的使用
Java的文件操作包含读写两个方面。对于读取操作,Java提供了Reader抽象类;与之对应,写入操作则由Writer抽象类支持。Writer作为所有输出字符流的统一接口,允许将数据写入文件,实现持久化存储。这种设计确保了读写操作的一致性和灵活性。
FileWriter
FileWriter 是 Writer 的一个实现类,用于直接将字符写入到文件中
FileWriter 创建
绝对路径、相对路径、File 对象都可以创建 Writer,默认会自动创建文件
代码语言:javascript代码运行次数:0运行复制//绝对路径
FileWriter writer = new FileWriter("/Users/admin/Documents/log/testWrite.txt");
//相对路径
FileWriter writer = new FileWriter("testWrite.txt");
//File 对象
FileWriter writer = new FileWriter(new File("/Users/admin/Documents/log/testWrite.txt"));
文件覆盖写入
在创建 FileWriter 时,可以在构造器里设置当前写入模式为覆盖写入,每次重新创建对象后写入都会覆盖原有文件!
代码语言:javascript代码运行次数:0运行复制//构造器第二个参数,默认false - 覆盖写入
try (FileWriter writer =
new FileWriter("/Users/admin/Documents/log/testWrite.txt", false)) {
writer.write("测试 Writer,我是第一行");
//写入换行
writer.write(System.lineSeparator());
writer.write("测试 Writer,我是第一行");
} catch (Exception e) {
e.printStackTrace();
}
文件结果:
文件追加写入
FileWriter 构造器第二个参数设置为「true」,写入文件的时候不会覆盖原有内容,会直接在文件末尾进行追加
代码语言:javascript代码运行次数:0运行复制try (FileWriter writer =
new FileWriter("/Users/admin/Documents/log/testWrite.txt", true)) {
writer.write("测试追加 Writer,我是第三行");
//写入换行
writer.write(System.lineSeparator());
writer.write("测试追加 Writer,我是第四行");
} catch (Exception e) {
e.printStackTrace();
}
文件结果:
BufferedWriter
BufferedWriter 是 Writer 的另一个实现类,它包装了一个缓存区域,数据的写入会先进入到缓冲区,只有当缓冲区满了或者手动调用「flush」方法才会通过内部的 Writer 真正写入到文件中
代码语言:javascript代码运行次数:0运行复制try (BufferedWriter writer = new BufferedWriter(
new FileWriter("/Users/admin/Documents/log/testWrite.txt", false))) {
writer.write("测试 BufferedWriter,我是第一行");
//写入换行
writer.write(System.lineSeparator());
writer.write("测试 BufferedWriter,我是第二行");
//如果手动调用 flush 方法,数据就会实时写入到文件中
//writer.flush();
//测试缓存 - sleep 过程中看文件是没有内容的
TimeUnit.SECONDS.sleep(10);
} catch (Exception e) {
e.printStackTrace();
}
BufferedWriter 提供了「newLine」方法,可以用于换行,其内部实现就是写入一个「换行符」
本文标签: Java文件写入详解FileWriter和BufferedWriter的使用
版权声明:本文标题:Java文件写入详解:FileWriter和BufferedWriter的使用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1748038211a2795713.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论