从文件中加载的String中删除转义字符

时间:2013-01-21 13:29:36

标签: java file

我使用以下方法将字符串从文件加载到变量。

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&#xd

我怎样才能改进我的方法,不允许这样做?

2 个答案:

答案 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()