Java BufferedWriter

📅 2026/7/2 2:39:02
Java BufferedWriter
目录一、什么是 BufferedWriter二、BufferedWriter 使用规则1. 必须包装 FileWriter 使用2. 核心致命特点三、常用方法1. write() 写入内容2. newLine() 跨平台换行3. flush() 强制刷新缓冲区4. close() 关闭流四、模板五、最容易错的 4 个坑坑1不写 flush/close文件空白坑2用 \n 换行格式错乱坑3忘记捕获 IO 异常坑4重复创建流、不关闭流六、BufferedWriter 和 FileWriter 区别七、极简总结考前速记一、什么是 BufferedWriterBufferedWriter 是 Java 字符缓冲输出流专门用来高效写文本文件、输出字符数据。普通 FileWriter 写一次内容就访问一次硬盘速度很慢BufferedWriter 自带缓冲区先把数据存在内存里攒满再一次性写入文件效率极高。简单一句话缓冲流 更快、更专业的文件写入工具所在包java.io.BufferedWriter二、BufferedWriter 使用规则1. 必须包装 FileWriter 使用BufferedWriter 不能直接操作文件只能包装普通字符输出流BufferedWriter bw new BufferedWriter(new FileWriter(test.txt));2. 核心致命特点BufferedWriter有缓冲区写入的数据先存在内存缓冲里不会立刻写入文件必须flush() 刷新或close() 关闭流数据才会真正保存忘记刷新/关闭 →文件空白、数据丢失三、常用方法1. write() 写入内容支持写入字符串、单个字符、字符数组bw.write(Hello Java); bw.write(A)2. newLine() 跨平台换行不推荐手写\nWindows 换行是\r\nLinux/Mac 是\n手写换行可能乱格式。newLine() 自动适配系统换行作业、比赛统一用它bw.write(第一行); bw.newLine(); bw.write(第二行);3. flush() 强制刷新缓冲区把缓冲区残留数据立刻写入文件清空缓冲。多次写入时建议中间刷新防止数据滞留。bw.flush();4. close() 关闭流关闭流前会自动 flush释放资源。IO 流用完必须关闭是作业扣分重灾区bw.close();四、模板带异常处理、标准写法、无bug适配所有文件写入作业import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) { BufferedWriter bw null; try { // 绑定文件 bw new BufferedWriter(new FileWriter(out.txt)); // 写入数据 bw.write(Hello BufferedWriter); bw.newLine(); bw.write(Java大一IO练习); // 刷新缓冲 bw.flush(); } catch (IOException e) { e.printStackTrace(); } finally { // 必须关闭流 try { if (bw ! null) { bw.close(); } } catch (IOException e) { e.printStackTrace(); } } } }五、最容易错的 4 个坑坑1不写 flush/close文件空白缓冲流数据在内存不刷新就不会落盘坑2用 \n 换行格式错乱不同系统换行符不同一律用newLine()坑3忘记捕获 IO 异常BufferedWriter 所有读写方法都抛IOException必须 try-catch 或 throws坑4重复创建流、不关闭流会造成资源占用、文件无法正常保存六、BufferedWriter 和 FileWriter 区别FileWriter基础字符输出流无缓冲速度慢适合少量写入BufferedWriter包装 FileWriter带缓冲速度快支持换行方法项目/作业首选七、极简总结考前速记BufferedWriter 是高效字符缓冲输出流核心方法write()写入、newLine()换行、flush()刷新、close()关闭不刷新数据丢失不关闭资源泄露换行优先用 newLine()跨平台通用所有 IO 操作必须处理异常