您好我正在构建一个将输出写入文本文件的程序。 在我的程序中,我的String看起来像这样:
MyName
Addres
Location
Paycheck
但是当我将它写入文本文件时,它看起来像这样:
MyName Addres Location Paycheck
我正在用单个toString方法编写所有内容。如何使用缓冲区编写器,以便在编写时格式化字符串?
这是我的代码:
if (file != null) {
FileWriter fileWriter = null;
try {
fileWriter = new FileWriter(file.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
BufferedWriter out = new BufferedWriter(fileWriter);
try {
out.write(emp.toString());
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
编辑:
这是emp类的toString方法:
@Override
public String toString() {
return "Name: " + name + " \nDOB: " + dob + " \nAddress: " + address + " \n******Paycheck******\nSalary: "
+ myPaycheck.getSalary() + "\nFederal Income: " + myPaycheck.getTaxes() + "\nSocial Security: "+ myPaycheck.getSocialSecurity() + "\nMedicare: " + myPaycheck.getMedicare()
+ "\nNet Salary: " + myPaycheck.getNetPay() + "";
}
答案 0 :(得分:3)
bufferedwriter API 您可以轻松使用“newLine”。
bw.newLine();
答案 1 :(得分:0)
您需要在将文本写入文件时使用System.lineSeparator()
或更改toString()
方法,以在添加的每行或对象之间添加行分隔符
修改强> 您的代码仅将字符串写为单独的行。尝试从输出文件中读取行并打印每一行,您将看到阅读器将每个细节视为单独的行。现在,如果您希望将其写入具有精确格式的文件中,以便在文件的下一行中显示,则必须单独给出输入,可以将对象添加到ArrayList并迭代它们。