可能重复:
如何在 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");)
但这无济于事。
提前致谢。