在写文件时保留换行符

时间:2012-12-04 05:50:01

标签: java newline

我从数据库表中导出数据并将其写入文件中。从数据库中正确检索换行符并在写入字符串时保留(因此我可以重新导入导出的数据)。

我的问题是在文件中换行符是隐式的(即它们显示为换行符)。如果数据库值是字符串“line1 \ r \ n line2”,则直接将此String发送到我的BufferedWriter + FileOutputStream的结果是 “一号线 LINE2"

有没有什么方法可以将文件写入“line1 \ r \ n line2”字符序列? (我已经尝试过bw.write(value.toCharArray())

1 个答案:

答案 0 :(得分:1)

您可以使用双反斜杠替换每个转义序列:

public static String escapeChars(String str) {
    char[][] escapes = {
            { '\n', 'n' },
            { '\r', 'r' },
            { '\f', 'f' },
            { '\b', 'b' },
            { '\t', 't' }
    };
    for (char[] escape : escapes) {
        str = str.replaceAll(Character.toString(escape[0]), "\\\\" + escape[1]);
    }
    return str;
}

可以轻松添加双撇号和单撇号,但我在此答案中省略了它。