FileInputStream の read メソッドは毎回 1 バイトを読み取りますが、Java の文字サイズは (16 ビット - 2 バイト) であるため、ファイル内の文字を読み取るのは誰ですか。read メソッドがネイティブなので 8 ビットに変換されるのでしょうか。
質問する
84 次
1 に答える
2
readerのread
メソッドは、文字ではなく( a と同等) を返します。結果をキャラクターに変換するのはあなたの責任です。FileInputStream
int
byte
提案のjavadocとしてFileInputStream
:「文字のストリームを読み取るには、FileReaderの使用を検討してください」。
文字をエンコードするバイト数は、ファイルのエンコードによって異なります。たとえば、ファイルが ASCII でエンコードされている場合、各バイトは文字ですが、ファイルが UTF-8 でエンコードされている場合、文字は 1、2、3、または 4 バイトです。
エンコーディングに関する詳細情報が必要な場合は、次の記事を読むことをお勧めします: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) .
于 2013-04-11T06:08:09.407 に答える