モジュール java.base
パッケージ java.io

インタフェースDataInput

既知のすべてのサブインタフェース:
ImageInputStream, ImageOutputStream, ObjectInput
既知のすべての実装クラス:
DataInputStream, FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamImpl, ImageOutputStreamImpl, MemoryCacheImageInputStream, MemoryCacheImageOutputStream, ObjectInputStream, RandomAccessFile

public interface DataInput
DataInputインタフェースは、バイナリ・ストリームからバイトを読み込み、そこからJavaプリミティブ型のいずれかでデータを再構築するために提供されています。 また、修正UTF-8形式のデータからStringを再作成する機能もあります。

必要なバイト数を読み込む前にend-of-fileに到達した場合、IOExceptionの一種であるEOFExceptionがスローされますが、このことはこのインタフェースのすべての読込みルーチンに当てはまります。 end-of-file以外のなんらかの理由によりバイトを読み込むことができない場合、EOFException以外のIOExceptionがスローされます。 特に、ストリームが閉じられた場合は、IOExceptionがスローされる可能性があります。

修正UTF-8

DataInputインタフェースとDataOutputインタフェースの実装は、UTF-8を若干修正した形式のUnicodeで文字列を表現します。 (標準のUTF-8フォーマットに関する情報は、「Unicode標準、バージョン4.0」のセクション「3.9 Unicodeエンコーディング・フォーム」を参照してください。)

  • '\u0001''\u007F'の範囲の文字は、1バイトで表されます。
  • ヌル文字'\u0000''\u0080''\u07FF'の範囲の文字は、1対のバイトで表されます。
  • '\u0800''\uFFFF'の範囲の文字は3バイトで表されます。
UTF-8値のエンコーディング
Byte ビット値
7 6 5 4 3 2 1 0
\u0001から\u007F 1 0 ビット6-0
\u0000,
\u0080\u07FF
1 1 1 0 ビット10-6
2 1 0 ビット5-0
\u0800から\uFFFF 1 1 1 1 0 ビット15-12
2 1 0 ビット11-6
3 1 0 ビット5-0

標準UTF-8形式とこの形式とは、次の点で異なります。

  • nullバイト'\u0000'は1バイトではなく、2バイト形式にコード化されます。これにより、コード化された文字列がその中に埋め込まれたnullを持つことはありません。
  • 1バイト、2バイト、および3バイト形式だけを使います。
  • 補助文字は、サロゲート・ペアの形式で表されます。

導入されたバージョン:
1.0
関連項目: