如何在 Java 中使用 FileWriter 写入新行?

How do I write to a new line using FileWriter in Java?

我一直在尝试在 Java 中创建一个简单的银行帐户,并希望将输入的用户名保存到 .txt 文档中。唯一的问题是,每次我 运行 代码时,名称都会在文本文档的第一行被替换。

package bank.account;
import java.util.Scanner;
import java.io.*;

public class ATM 
{
    public static void main(String[] args){


    Scanner sc = new Scanner(System.in);
    BankAccount userAccount = new BankAccount();
    System.out.println("Please enter your name in order to make a new account:");


    String fileName = "name.txt";
    try {
        FileWriter fileWriter =
                new FileWriter(fileName);
        BufferedWriter bufferedWriter = 
                new BufferedWriter(fileWriter);

        String name = sc.nextLine();
        userAccount.setaccName(name);
                bufferedWriter.write(userAccount.getaccName());
                bufferedWriter.close();

    }
    catch(IOException ex) {
            System.out.println(
                "Error writing to file '"
                + fileName + "'");

        }

    System.out.println("Please enter the amount you would like to deposit");
    double money = sc.nextDouble();
    userAccount.deposit(money);
    System.out.println(userAccount.getaccBalance());
    System.out.println(userAccount.getaccName()+ " your balance is " + userAccount.getaccBalance());

    }

}

由于使用 new FileWriter(fileName);,您正在覆盖文件内容(请阅读有关 class/constructor 的 JavaDoc)。使用 new FileWriter(fileName, true); 附加 到文件。

另请注意,如果文件不为空,您需要在名称前附加一个换行符 ("\n"),否则您将在一行中获得所有名称。

此代码将打开或创建一个文件并将新文本追加到新行中。

PrintStream fileStream = new PrintStream(new File("a.txt"));
fileStream.println(userAccount.getaccName());

您还可以使用参数“append = true”创建 FileWriter,然后结果将附加到新行中。

// FileWriter(File file, boolean append)
FileWriter fileWriter =
                new FileWriter(filePathName, shouldAppend);