Joe*_*uck 0 java printwriter java-io
对不起,标题含糊不清.我所拥有的是一个基本上接受用户输入然后将其打印到文件的程序.很简单.输入包括备忘录标题和随后将在该标题下提交的备忘录.两者之间会有一个日期戳.
我打印文件的代码如下所示:
System.out.println("Memo topic (enter -1 to end):");
String message = console.nextLine();
now = new Date();
String dateStamp = now.toString();
out.println(topic + "\n" + dateStamp + "\n" + message);
Run Code Online (Sandbox Code Playgroud)
out是我之前在程序中创建的PrintWriter的名称.控制台显示指令并获取输入,然后将其写入文件.当我读取文件中的文本时,它们一起运行,看起来像这样:
ThanksgivingWed Nov 4 14:39:36 CST"Pick up some turkey at the Kroger, you
lazy bum!" said Mom.
Run Code Online (Sandbox Code Playgroud)
但是,如果我将输出更改为仅打印到控制台,则换行符实际上有效,输出字符串的三个部分按行分割.如何将其修改为正确输出到文件?
我假设你在Windows上测试它.这会导致问题,因为在Windows上,新行由\r\n(回车,换行)表示,并非所有应用程序都乐于接受\n.
为了得到一个与系统无关的行分隔符,你应该使用System.lineSeparator()它
返回依赖于系统的行分隔符字符串.它始终返回相同的值 - 系统属性line.separator的初始值.
在UNIX系统上,它返回"\n"; 在Microsoft Windows系统上,它返回"\ r \n".
所以你的代码会变成这样:
out.println(topic + System.lineSeparator() + dateStamp + System.lineSeparator() + message);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |