将带有换行符的字符串写入文件
Posted
技术标签:
【中文标题】将带有换行符的字符串写入文件【英文标题】:Write string with newlines to file 【发布时间】:2014-04-18 19:07:38 【问题描述】:我有一个从 TextArea 获得的字符串。此字符串包括用户输入换行符。我想将整个字符串(包括那些换行符)写入文件。
这就是我现在拥有的:
FileWriter fw = new FileWriter(nm + ".txt");
PrintWriter pw = new PrintWriter(fw);
pw.print(txt);
pw.close();
我在谷歌上搜索过,但我不知道如何解决我的问题。
【问题讨论】:
这应该可以工作...除了您在写入文件时没有指定编码这一事实。那么,究竟是什么问题呢? 如果我每次在新行上输入 3 次“test”并将文件“保存”在我的应用程序中,然后当我用记事本打开文件时,它只会显示“testtesttest”跨度> 记事本有时会让人困惑。\r\n
windows 中的问题。
我明白了...当您从TextArea
获取字符串时,您可以转储字符串的字符吗?换行符是\n
还是\r\n
?
@SubirKumarSao 不幸的是,这似乎不起作用
【参考方案1】:
往这个方向看:
1. System.getProperty("line.separator");
2. System.lineSeparator();
例如:
pw.print(txt.replace("\n", System.lineSeparator()).replace("\r\n", System.lineSeparator()));
【讨论】:
【参考方案2】:您的代码应该没有问题。
无论如何,如果你使用 Java 7,你应该使用Files
:
final Path path = Paths.get(nm + ".txt");
try (
BufferedWriter writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8,
StandardOpenOption.APPEND, StandardOpenOption.CREATE_NEW);
)
writer.write(txt);
writer.flush();
【讨论】:
以上是关于将带有换行符的字符串写入文件的主要内容,如果未能解决你的问题,请参考以下文章