我正在编写一个程序,它从文件中读取一个String并从该文件生成标记。
EG。如果文件是'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");)
但这没有帮助。
提前致谢。