0

テキストファイルを文字列変数に読み込もうとしています。テキスト ファイルには複数の行があります。「読み取り」コードをテストするために文字列を出力すると、すべての文字の間に追加のスペースがあります。String を使用して文字バイグラムを生成しているため、スペースによってサンプル テキストが役に立たなくなります。コードは

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());
}

アドバイスをいただければ幸いです。

ありがとう。

4

1 に答える 1

0

テキストファイルはUTF-16(Unicode)でエンコードされている可能性があります。UTF-16は、各文字を表すために2バイトまたは4バイトを使用します。ほとんどの欧米のテキストファイルでは、「中間」バイトは印刷できず、スペースのように見えます。

InputStreamReaderの2番目の引数を使用して、エンコーディングを指定できます。

または、テキストファイルを変更します(Unixではiconv、Windowsではメモ帳の[名前を付けて保存]ダイアログ)。 代替テキスト

于 2010-11-17T21:41:55.100 に答える