BufferedWriter逐行写入字符串

时间:2017-11-16 16:46:46

标签: java bufferedwriter

您好我正在构建一个将输出写入文本文件的程序。 在我的程序中,我的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() + "";
}

2 个答案:

答案 0 :(得分:3)

bufferedwriter API 您可以轻松使用“newLine”。

bw.newLine();

答案 1 :(得分:0)

您需要在将文本写入文件时使用System.lineSeparator()或更改toString()方法,以在添加的每行或对象之间添加行分隔符

修改 您的代码仅将字符串写为单独的行。尝试从输出文件中读取行并打印每一行,您将看到阅读器将每个细节视为单独的行。现在,如果您希望将其写入具有精确格式的文件中,以便在文件的下一行中显示,则必须单独给出输入,可以将对象添加到ArrayList并迭代它们。