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();