2
4

1 に答える 1

6

それはなぜですか、なぜ英語の ASCII 記号が出力されないのですか?

からDataInput.readChar():

2 つの入力バイトを読み取り、char 値を返します。a を最初に読み取ったバイト、b を 2 番目のバイトとします。返される値は次のとおりです。 (char)((a << 8) | (b & 0xff))

このメソッドは、インターフェイス DataOutput の writeChar メソッドによって書き込まれたバイトを読み取るのに適しています。

つまり、ファイルが UTF-16 でエンコードされているかのように扱われますが、そうではないことはほぼ確実です。

テキストデータを読みたいときは、入力データに適切なエンコーディングを指定して、例えばwrap aroundなどのサブクラスを使用する必要があります。ReaderInputStreamReaderFileInputStream

于 2012-06-21T20:43:29.923 に答える