Java:PrintWriter 和字符串中的换行符

标签 java string io

我的问题非常简单,如果我有一个长字符串,其中有很多“\n”换行符,即:

strings = "Hey\nThere\nFriend\n"

并使用 Java 中的 PrintWriter 执行以下操作:

PrintWriter save = new PrintWriter("test.txt");
save.println(strings);
save.close();

我最终得到的文件会被格式化为\n吗?即该文件将具有:

Hey
There
Friend

或者会有:

Hey\nThere\nFriend

如果是后者,有人可以指导我如何更改代码(以及了解 PrintWriter 的工作原理)以创建前一个输出吗?

最佳答案

事实上,\n 可以工作,但仅适用于基于 Unix 的操作系统。基于 Windows 的操作系统使用 \r\n 作为分隔符。

如果你想编写可移植的代码,你应该避免使用特定的操作系统行分隔符。
支持 System.lineSeparator() 不依赖于操作系统。
另请注意,PrintWriter 提供 println() 来实现不依赖于操作系统的断线(即使它对您的用例来说不一定有用)

关于Java:PrintWriter 和字符串中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50153187/

相关文章:

Java返回组件

python - 如何用另一个数字替换字符串中的数字?

java - 从字符串中获取 2 个 double

java - 将InputStream复制到OutputStream的更好方法

ruby - 使用 Faraday Ruby gem 下载图像并写入磁盘

java - google guice 内部是如何工作的

我的构造函数中的 JAVA Scanner 对象无法在我的方法中调用它

java - 使用 SystemOutRule.getLog 的 AssertEquals 失败

c# - .Split() 在一个位置而不是在一个字符上?

javascript - 关于node.js内部异步I/O机制的困惑