0

FileInputStream の read メソッドは毎回 1 バイトを読み取りますが、Java の文字サイズは (16 ビット - 2 バイト) であるため、ファイル内の文字を読み取るのは誰ですか。read メソッドがネイティブなので 8 ビットに変換されるのでしょうか。

4

1 に答える 1

2

readerのreadメソッドは、文字ではなく( a と同等) を返します。結果をキャラクターに変換するのはあなたの責任です。FileInputStreamintbyte

提案の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 に答える