You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何追加文本到文件并同步打印内容?Java写入文件无内容排查

问题排查与解决方案

先帮你梳理下代码里的几个关键问题,这也是你折腾一小时没搞定的核心原因:

1. FileWriter默认是覆盖模式,而非追加

你当前用的new FileWriter(txt)会直接替换原文件内容,如果要追加文本到文件末尾,必须传入第二个参数true,也就是new FileWriter(txt, true),这样新内容才会加到原有内容后面,而不是把文件清空重写。

2. 写入后未刷新/关闭缓冲区,数据没落地到磁盘

BufferedWriter是带内存缓冲区的,你调用edit.write(s)后,内容还停留在内存里,并没有真正写到硬盘上。这时候用Scanner去读,自然读不到刚写的内容。必须调用edit.flush()强制把缓冲区内容刷到磁盘,或者直接关闭流(关闭流时会自动触发flush)。

3. 读写流同时打开,存在资源冲突

你在打开BufferedWriter写文件的同时,又用Scanner去读同一个文件,这会导致文件被写锁占用,读取操作要么失败,要么读到不完整的内容。正确的做法是先写完并关闭写流,再打开读流读取。

4. 语法错误与异常处理缺失

代码里sc.nextLine...明显是语法错误,少了闭合括号;而且整个try块没有对应的catch或finally,编译都通不过。另外,IO资源(FileWriter、BufferedWriter、Scanner)最好用try-with-resources自动关闭,避免资源泄漏。


修复后的完整代码

下面是实现追加文本到文件+控制台打印文件内容的正确代码:

import java.io.*;
import java.util.Scanner;

public class FileAppender {
    public static void main(String[] args) {
        String contentToAppend = "more text";
        File txtFile = new File("myTextFile.txt");

        // 第一步:追加文本到文件
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(txtFile, true))) {
            writer.write(contentToAppend);
            writer.newLine(); // 可选:添加换行符,让新内容单独成行
            // try-with-resources会自动关闭流,无需手动flush/close
        } catch (IOException e) {
            System.err.println("写入文件出错:" + e.getMessage());
            e.printStackTrace();
        }

        // 第二步:读取文件内容并打印到控制台
        try (Scanner scanner = new Scanner(txtFile)) {
            System.out.println("文件当前内容:");
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                System.out.println(line);
            }
        } catch (FileNotFoundException e) {
            System.err.println("文件未找到:" + e.getMessage());
            e.printStackTrace();
        }
    }
}

代码关键说明

  • try-with-resources:自动管理IO资源,不用手动写close(),彻底避免资源泄漏
  • 追加模式开启:new FileWriter(txtFile, true)确保内容追加而非覆盖
  • 分阶段读写:先完成写入并释放文件锁,再读取内容,避免资源冲突
  • 异常捕获:明确捕获IO异常,方便快速定位问题

内容的提问来源于stack exchange,提问作者ddalcanto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:13:08