String中的其他空格,使用FileInputStream将文本文件读取到String

时间:2010-05-08 00:13:02

标签: spaces text-files fileinputstream

我正在尝试将文本文件读入String变量。文本文件有多行。 打印完字符串以测试“读入”代码后,每个字符之间都有一个额外的空格。当我使用String生成角色bigrams时,空格使得示例文本无用。 代码是

try {
  FileInputStream fstream = new FileInputStream(textfile);   
  DataInputStream in = new DataInputStream(fstream);     
  BufferedReader br = new BufferedReader(new InputStreamReader(in));

  //Read corpus file line-by-line, concatenating each line to the String "corpus"
  while ((strLine = br.readLine()) != null) {
    corpus = (corpus.concat(strLine));    
  }

  in.close();    //Close the input stream  
}
catch (Exception e) { //Catch exception if any
  System.err.println("Error test check: " + e.getMessage());
}

我很感激任何建议。

感谢。

1 个答案:

答案 0 :(得分:0)

您的文本文件可能是UTF-16(Unicode)编码的。 UTF-16需要两个或四个字节来表示每个字符。对于大多数西方文本文件,“中间”字节是不可打印的,看起来像空格。

您可以使用second argument of InputStreamReader指定编码。

或者,修改文本文件(Unix上的iconv,Windows上的记事本中的另存为...对话框): alt text