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

如何在Java Selenium的for循环中将控制台输出追加到TXT文件?

解决Java Selenium for循环中控制台输出追加到TXT文件的问题

你的代码会覆盖文件原有内容,核心原因是FileWriter默认以覆盖模式打开文件,每次调用name()方法时都会清空文件后写入新内容。另外FC.createNewFile()属于冗余操作,因为FileWriter在目标文件不存在时会自动创建。

修改方案1:调整原有代码实现追加

public static void name(String line) throws IOException {
    String TestFile = "D:/temp.txt";
    // 启用追加模式,第二个参数true表示向文件末尾写入
    FileWriter FW = new FileWriter(TestFile, true);
    BufferedWriter BW = new BufferedWriter(FW);
    
    BW.append(line);
    // 添加换行符,确保每次输出内容单独一行
    BW.newLine();
    
    // 依次关闭流
    BW.close();
    FW.close();
}

修改方案2:使用try-with-resources安全管理流(推荐)

Java 7及以上支持try-with-resources语法,它会自动关闭所有实现AutoCloseable接口的资源,避免手动关闭时可能出现的资源泄漏:

public static void name(String line) throws IOException {
    String TestFile = "D:/temp.txt";
    // 自动关闭FileWriter和BufferedWriter
    try (FileWriter fw = new FileWriter(TestFile, true);
         BufferedWriter bw = new BufferedWriter(fw)) {
        bw.append(line);
        bw.newLine(); // 适配不同系统的换行符
    }
}

关键说明

  • new FileWriter(TestFile, true)中的true参数是实现追加的核心,它指定文件打开模式为追加模式,新内容会被添加到文件末尾而非覆盖原有内容。
  • bw.newLine()会根据当前操作系统自动生成对应的换行符(Windows为\r\n,Linux/macOS为\n),比硬编码"\n"兼容性更强。
  • 在for循环中调用该方法时,每次传入的内容都会被追加到文件末尾,且自动换行。

内容的提问来源于stack exchange,提问作者M Thomas Mary

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:30:40