BufferedWriter 逐行写入字符串
BufferedWriter write string line by line
您好,我正在构建一个将输出写入文本文件的程序。
在我的程序中,我的字符串如下所示:
MyName
Addres
Location
Paycheck
但是当我将它写入文本文件时,它看起来像这样:
MyName Addres Location Paycheck
我正在用一个 toString 方法编写所有内容。我如何使用 bufferedwriter 以便它在写入时格式化字符串?
这是我的代码:
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 方法 class:
@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() + "";
}
您要么需要在将文本写入文件时使用 System.lineSeparator()
,要么更改 toString()
方法以在每行或添加的对象之间添加行分隔符
编辑
您的代码仅将您的字符串写为单独的行。尝试从输出文件中读取行并打印每一行,您会看到 reader 将每个细节视为单独的行。现在,如果您希望以准确的格式将其写入文件,以便它显示在文件的下一行中,您必须单独提供输入,可能是通过将对象添加到 ArrayList 并对其进行迭代。
bufferedwriter API
您可以轻松使用"newLine"。
bw.newLine();
您好,我正在构建一个将输出写入文本文件的程序。 在我的程序中,我的字符串如下所示:
MyName
Addres
Location
Paycheck
但是当我将它写入文本文件时,它看起来像这样:
MyName Addres Location Paycheck
我正在用一个 toString 方法编写所有内容。我如何使用 bufferedwriter 以便它在写入时格式化字符串?
这是我的代码:
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 方法 class:
@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() + "";
}
您要么需要在将文本写入文件时使用 System.lineSeparator()
,要么更改 toString()
方法以在每行或添加的对象之间添加行分隔符
编辑 您的代码仅将您的字符串写为单独的行。尝试从输出文件中读取行并打印每一行,您会看到 reader 将每个细节视为单独的行。现在,如果您希望以准确的格式将其写入文件,以便它显示在文件的下一行中,您必须单独提供输入,可能是通过将对象添加到 ArrayList 并对其进行迭代。
bufferedwriter API 您可以轻松使用"newLine"。
bw.newLine();