我使用以下方法将字符串从文件加载到变量。
private static String readFile(String path) throws IOException {
FileInputStream stream = new FileInputStream(new File(path));
try {
FileChannel fc = stream.getChannel();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
/* Instead of using default, pass in a decoder. */
return Charset.defaultCharset().decode(bb).toString();
}
finally {
stream.close();
}
}
问题是我的变量中有转义字符。我希望我的变量包含:
some string
但它看起来像:
some string
我怎样才能改进我的方法,不允许这样做?
答案 0 :(得分:1)
您可以使用Reader,特别是BufferedReader来读取TXT文件中的行:
BufferedReader br = new BufferedReader(new FileReader(path));
String line = br.readLine(); // this strips line termination characters for you
如果您想阅读整个文件,有很多实用程序类可以提供此功能(例如Google Guava):
String contents = Files.toString(new File(path), charset);
答案 1 :(得分:0)
我认为您的.txt
文件中有一些隐藏的字符。
你可以尝试:
return Charset.defaultCharset()
.newDecoder()
.onMalformedInput(CodingErrorAction.IGNORE)
.onUnmappableCharacter(CodingErrorAction.IGNORE)
.decode(bb)
.toString()