0

可能重复:
如何在 Java 中打印转义字符

我正在编写一个程序,它从文件中读取字符串并从该文件生成令牌。

例如。如果文件是 '1\t .\n$$$'

那么我想要的java字符串是完全一样的。所以 String str 应该看起来像 '1\t .\n$$$'

问题是,一旦我遇到可以表示 \t 或 \n 的“\”(反斜杠),那么下一个字符(t 或 n)就会丢失。

我正在使用 bufferedreader 类并使用函数 read 逐个字符地读取文件。这是一段代码。

    Charset encoding = Charset.defaultCharset();
    InputStream in = new FileInputStream(new File (filepath));
    Reader reader = new InputStreamReader(in, encoding);
    // buffer for efficiency
    buffer = new BufferedReader(reader);
    String temp = "";
    while ((r = buffer.read()) != -1) {
        ch = (char) r;
        if (ch != '\\') {
        temp += ch;
        } else if (ch == '\\'){
         ch = (char) buffer.read();
         if (ch == 'n') {
            temp += "\\n";
         } else {
            temp += "\\t";
         }
        }
    } 

我也尝试过使用 UTF-8 字符集进行编码

 (Charset encoding = Charset.forName("UTF-8");)

但这无济于事。

提前致谢。

4

0 回答 0