java - 重复附加到字符串时无法添加换行符

标签 java multithreading io

我正在尝试写入具有特定格式的文本文档。这是我现在拥有的。

    String line = "";
    double totalCost = 0;

    Node curr = summary.head.next;
    while(curr!=summary.tail)
    {
        line += [an assortment of strings and variables] +"\r";
        totalCost += PRICELIST.get(curr.itemName)*curr.count;
        curr = curr.next;
    }

        write.printf("%s" + "%n", line);

这就是添加到线上的部分实际的样子。

"Item's name: " + curr.itemName + ", Cost per item: " +  NumberFormat.getCurrencyInstance().format(PRICELIST.get(curr.itemName)) +
                ", Quantity: " + curr.count + ", Cost: " +  NumberFormat.getCurrencyInstance().format(PRICELIST.get(curr.itemName)*curr.count) + "\r";

我也尝试过使用换行符。在我让它工作之前,当打印语句在循环内意味着它一次只写一行。我想这样做是因为我将有多个线程写入这个文件,这样任何线程都不会持有锁太久。

最佳答案

如果使用 Java 7 或更高版本,您可以使用 System.lineSeparator()

关于java - 重复附加到字符串时无法添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745942/

相关文章:

java - 以编程方式使用辅助功能服务读取通知栏标题、消息

java - 如何监听日志中抛出的错误?

c# - 如何避免 .NET 中的死锁

java - sleep 线程处于什么状态?

c# - SetFileTime 返回错误代码 5

c++ - 是否可以在不使用任何头文件的情况下在 C++ 中执行 I/O 操作?

java - 当连续按下 `System.in` 键两次时如何终止 "Enter"键盘流?

java - 根据 JPA 2 中的子参数过滤父级

java - Android 将字符串解析为日期 - 未知模式字符 'X'

java - android: 在 UI 线程中运行一个耗时的任务?