2010-12-01 10 views
1

ファイルをArrayList of Charactersに読み込みたいです。最初に私は、これはそれをやってかなり滑らかな方法かもしれないと思った:dis.readchar中国語の文字 - 間違って解釈された文字!

ArrayList<Character> char_chain = new ArrayList<Character>(); 


try { 
      fis = new FileInputStream(file); 
      bis = new BufferedInputStream(fis); 
      dis = new DataInputStream(bis); 

      while (dis.available() != 0) { 
       // UTF8 unnoetig, da 26 Lettern 
       while (!EOF) { 
        try { 
         char_chain.add(dis.readChar()); 
        } catch (EOFException e) { 
         EOF = true; 
        } 
       } 
      } 
     if (debug) { 
      while (char_chain.get(i) instanceof Character) { 
       System.out.println(char_chain.get(i++)); 
      } 
     } 

私はこれを行う場合、私は中国の文字を取得する:つまり、なぜ

噖 
䝃 
塘 
䕅 

誰かが私に教えてもらえますか? :)私はテキストには大文字のような大文字が含まれていることを言及する必要があります:ABCDEなど。

答えて

1

DataInputStream.readChar()は、UTF-16文字を読んでいることを前提としています。

は、文字データを読み込む(ファイルは、基本的なラテン文字が含まれている場合、十分なものでなければならない「US-ASCII」)正しいエンコーディングで InputStreamReaderを使用します。

関連する問題