将带有换行符的字符串写入文件

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();

【讨论】:

以上是关于将带有换行符的字符串写入文件的主要内容,如果未能解决你的问题,请参考以下文章

写入文件的字符串不保留换行符

【C语言】向文件写入东西不能写入换行

Shell 脚本写入文件换行的问题

php: 怎么让写入的字符串自动换行(在文本里面)?用fwrite()写入

读取csv文件并将df写入带有文本换行的excel

关于c++文件流读入和写入的问题