【问题标题】:BufferedWriter write string line by lineBufferedWriter 逐行写入字符串
【发布时间】:2017-11-16 16:46:45
【问题描述】:

您好,我正在构建一个将输出写入文本文件的程序。 在我的程序中,我的字符串如下所示:

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方法:

@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() + "";
}

【问题讨论】:

  • 能否请您展示Employee类的toString方法。
  • 您需要展示emp 是如何创建的,或者更好的是,给出一个最小、完整和可验证的示例(请参阅stackoverflow.com/help/mcve)。这是一个非常简单的程序,所以一点也不难。

标签: java bufferedwriter


【解决方案1】:

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

bw.newLine();

【讨论】:

  • 我试过了,但没用。我必须循环遍历字符串吗?
【解决方案2】:

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

编辑 您的代码仅将您的字符串写为单独的行。尝试从输出文件中读取行并打印每一行,您会看到阅读器将每个细节视为单独的行。现在,如果您希望以精确的格式将其写入文件中,以便显示在文件的下一行中,您必须单独提供输入,可能通过将对象添加到 ArrayList 并对其进行迭代。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    相关资源
    最近更新 更多