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

Java文本文件追加写入换行及程序循环问题求助

解决Java文件写入时的循环问题与换行异常

嘿,我来帮你搞定这两个问题!你遇到的程序循环和记录不换行的情况,都是代码里的几个小细节出错导致的,咱们一步步来修正:

问题根源分析

1. 输入读取错误导致“莫名循环”

你创建了3个独立的Scanner对象来读取输入,这本身就会造成输入流的管理混乱;更关键的是,读取手机号时你写错了对象:

// 错误:用读取last name的LN来读手机号,此时LN的输入流已被消耗,会导致程序等待输入,看起来像循环
String num = LN.nextLine();

而且多个Scanner共享同一个标准输入流,很容易出现读取阻塞,表现为程序“卡住循环”。

2. 未添加换行指令导致记录堆积

你写入文件时只拼接了||分隔符,但没有添加换行操作,所以所有新写入的内容都会挤在同一行,不会自动换行。

修正后的完整代码

我把代码优化了一下,解决了这两个问题,同时还优化了资源管理:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;

public class CoachRecordWriter {
    public static void main(String[] args) {
        // 只创建一个Scanner实例,复用标准输入流,避免冲突
        Scanner scanner = new Scanner(System.in);

        // 读取用户输入
        System.out.print("Enter First name: ");
        String firstName = scanner.nextLine();

        System.out.print("Enter Last name: ");
        String lastName = scanner.nextLine();

        System.out.print("Enter Number: ");
        String phoneNumber = scanner.nextLine();

        // 使用try-with-resources自动关闭流,无需手动调用close(),更安全
        try (BufferedWriter writer = new BufferedWriter(new FileWriter("D:\\Second year\\OOP\\Coach1.txt", true))) {
            // 拼接一条完整记录,最后写入换行符
            writer.write(firstName + "||" + lastName + "||" + phoneNumber);
            writer.newLine(); // 自动适配系统的换行规则(Windows是\r\n,Linux是\n)
        } catch (Exception e) {
            // 打印具体异常信息,方便排查问题,而不是模糊提示
            e.printStackTrace();
        } finally {
            // 关闭Scanner资源
            scanner.close();
        }
    }
}

关键修改点说明

  • 单一Scanner实例:只用一个Scanner处理所有输入,避免输入流冲突,同时修正了手机号读取的对象错误,彻底解决“循环”问题。
  • 自动资源管理:用try-with-resources语法,BufferedWriter会在代码块结束后自动关闭,避免资源泄漏。
  • 强制换行:每条记录写入后调用writer.newLine(),确保新记录自动换行,而且这个方法会根据操作系统自动选择合适的换行符,比直接写"\n"更通用。
  • 更友好的异常处理:把模糊的System.out.println("Error!")改成e.printStackTrace(),能看到具体的异常原因,方便后续排查。

现在你再运行程序,每次输入的记录都会单独占一行,重启程序输入新内容也不会覆盖原有数据,而且不会再出现莫名循环的情况啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:49:53