当前位置: 首页 > 知识库问答 >
问题:

我不确定为什么换行符不影响打印的内容[复制]

范华清
2023-03-14

我正在写一个简单的程序来记录我的油耗。我试图弄明白为什么换行符没有输出到文件中,而其他字段是。

PrintWriter fuelLog = new PrintWriter(new FileWriter("FuelLog.txt", true));
fuelLog.println("New Trip");
miles = JOptionPane.showInputDialog("Please enter trip miles...");
dollars = JOptionPane.showInputDialog("Please enter cost to refuel...");
gallons = JOptionPane.showInputDialog("Enter the gallons used on the trip...");

fuelLog.println("Miles on trip: " + miles + "\n" + 
                "Cost: $" + dollars + "\n" + 
                "Gallons used: " + gallons);
fuelLog.close();

我的文件的输出结果如下所示,例如:

行程里程:270.67成本:33.76加仑使用量:11.567

我要查找的文件的预期输出是:

行程里程:270.67
成本:33.76
加仑消耗:11.567

共有1个答案

曹奇文
2023-03-14

换行符取决于平台,在您的平台上很可能是\r\n。通过将printf%n特殊字符一起使用,可以避免该问题,该字符将被转换为平台中的正确换行符。作为一种副作用,它还可以帮助清理代码,避免所有这些字符串浓缩:

fuelLog.printf("Miles on trip: %s%n" + 
               "Cost: $%s%n" + 
               "Gallons used: %s%n", miles, dollars, gallons);
 类似资料:
  • 问题内容: 当我从终端执行该程序时,我编写的程序未打印任何内容,因此我尝试运行以下代码 这是终端,为什么它不打印出来你好。主要功能是否还在运行? 问题答案: Python不会自动调用main()(并且您需要使用sys库来获取argv)。

  • 问题内容: 我有以下代码: 如果我没有在goroutine中从缓冲区读取的代码,它会输出这样的消息,这是我期望发生的事情: 但是,将其放在goroutine中不会打印任何内容。 有人可以解释为什么吗? 问题答案: 函数完成后,您的程序将退出。这很可能在您的goroutine有时间运行并打印其输出之前发生。 一种选择是从通道读取主goroutine块,并在完成工作后将goroutine写入通道。

  • 问题内容: 我正在创建一个小型Java Jpanel游戏,其中应该有一个火箭,它通过箭头上下移动,并通过太空射击。 触发方法应按以下方式工作:按下空格键,东西触发并在屏幕上移动,然后当它碰到某个x时,它就会消失。此外,您只能发射一次,直到另一颗子弹消失为止。 我不知道我在做什么错。首先,在我的代码启动后,您会看到子弹在屏幕上飞舞。 2,子弹没有消失。 第三,即使其他子弹仍然可见,它也允许我再次开火

  • 但是,正确的数据条目在被调用时会打印出来。我试着在网上寻找我应该做什么的答案,但我找不到任何实际可行的东西。我刚刚开始学习Java,所以可能有一个非常简单的答案,我只是忽略了。如果有人有什么想法,我将不胜感激。

  • 问题内容: 我一定缺少关于goroutine的一些基本知识,但是我环顾四周,我看不到任何原因无法解决这个问题。 问题答案: 您的程序在goroutines有机会运行之前已经完成。 这是带有WaitGroup的代码: https://play.golang.org/p/lmCPU9-qkB