如何在 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);
我一直在尝试在 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);