java文件读写第一步是创建真实文件:file对象仅表示路径,需调用createnewfile()生成空文件;若含不存在目录,先用mkdirs()创建父目录;推荐用bufferedwriter/bufferedreader或files工具类简化操作。

从零开始做 Java 文件读写,第一步不是直接读或写,而是让系统里真有那个文本文件。很多初学者卡在“找不到文件”或“写不进去”,其实问题出在:File 对象只是个“路标”,它不会自动建文件——你得明确告诉系统“请创建这个空文件”。
先创建一个真实的文本文件
用 File 对象表示路径,再调用 createNewFile() 才算真正落地:
- 写法示例:File file = new File("note.txt"); —— 这行只在内存里建了个“指向 note.txt 的地址”,硬盘上还什么都没有
- 必须加这句:file.createNewFile(); —— 它会检查文件是否存在,不存在就新建一个空文本文件;存在则不做任何事,返回 false
- 注意:如果路径含文件夹(比如 "data/note.txt"),而 data 文件夹还没建,createNewFile() 会失败。此时要先用 file.getParentFile().mkdirs() 把父目录建好
写入内容:用字符流,别用字节流
文本文件推荐用 BufferedWriter + FileWriter,天然支持中文,不用手动转码:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- FileWriter fw = new FileWriter(file, true); —— 第二个参数 true 表示追加模式(不加就是覆盖)
- 套一层 BufferedWriter bw = new BufferedWriter(fw);,效率更高,还能用 bw.newLine() 写换行
- 写完务必关流:bw.close();(或者用 try-with-resources 自动关)
读取内容:按行读最稳妥
别试图一次性把整个文件读成字符串(小文件虽可,但习惯不好),用 BufferedReader 逐行处理:
- BufferedReader br = new BufferedReader(new FileReader(file));
- 循环调用 br.readLine(),返回 null 就代表到文件末尾了
- 同样记得 br.close();,否则文件可能被锁住,下次写入失败
更现代的写法(Java 7+ 推荐)
如果只是简单读写小文本,直接用 Files 工具类,三行搞定,还不用管流:
- 读:List
lines = Files.readAllLines(Paths.get("note.txt"), StandardCharsets.UTF_8); - 写:Files.write(Paths.get("note.txt"), Arrays.asList("第一行", "第二行"), StandardCharsets.UTF_8);
- 注意:默认是覆盖写;如需追加,在 write 方法最后加上 StandardOpenOption.APPEND
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










