public interface DataOutput
DataOutput
インタフェースは、Javaのプリミティブ型があればそのデータを一連のバイトに変換してバイナリ・ストリームに書き込むために提供されています。また、String
を修正UTF-8形式に変換して結果の一連のバイトを書き込む機能もあります。
このインタフェースのバイトを書き込むすべてのメソッドでは、なんらかの理由でバイトを書き込めない場合は、通常、IOException
がスローされます。
DataInput
, DataOutputStream
修飾子と型 | メソッドと説明 |
---|---|
void |
write(byte[] b)
出力ストリームに配列
b のすべてのバイトを書き込みます。 |
void |
write(byte[] b, int off, int len)
配列
b からlen バイトを順番に出力ストリームに書き込みます。 |
void |
write(int b)
引数
b の下位8ビットを出力ストリームに書き込みます。 |
void |
writeBoolean(boolean v)
1つの
boolean 値をこの出力ストリームに書き込みます。 |
void |
writeByte(int v)
引数
v の下位8ビットを出力ストリームに書き込みます。 |
void |
writeBytes(String s)
文字列を出力ストリームに書き込みます。
|
void |
writeChar(int v)
2バイトで構成される
char 値を出力ストリームに書き込みます。 |
void |
writeChars(String s)
文字列
s 内の各文字を、1文字ごとに2バイトずつ順番に書き込みます。 |
void |
writeDouble(double v)
8バイトで構成される
double 値を出力ストリームに書き込みます。 |
void |
writeFloat(float v)
4バイトで構成される
float 値を出力ストリームに書き込みます。 |
void |
writeInt(int v)
4バイトで構成される
int 値を出力ストリームに書き込みます。 |
void |
writeLong(long v)
8バイトで構成される
long 値を出力ストリームに書き込みます。 |
void |
writeShort(int v)
引数の値を表す2バイトを出力ストリームに書き込みます。
|
void |
writeUTF(String s)
2バイトの長さ情報を出力ストリームに書き込みます。その後ろに、文字列
s 内の各文字の修正UTF-8表現が続きます。 |
void write(int b) throws IOException
b
の下位8ビットを出力ストリームに書き込みます。b
の上位24ビットは無視されます。b
- 書き込まれるバイト。IOException
- 入出力エラーが発生した場合。void write(byte[] b) throws IOException
b
のすべてのバイトを書き込みます。b
がnull
の場合、NullPointerException
がスローされます。b.length
がゼロの場合、バイトは書き込まれません。それ以外の場合は、最初にバイトb[0]
が書き込まれ、次にb[1]
という具合に続き、最後に書き込まれるバイトはb[b.length-1]
になります。b
- データ。IOException
- 入出力エラーが発生した場合。void write(byte[] b, int off, int len) throws IOException
b
からlen
バイトを順番に出力ストリームに書き込みます。b
がnull
の場合、NullPointerException
がスローされます。off
が負の場合、len
が負の場合、またはoff+len
が配列b
の長さよりも大きい場合は、IndexOutOfBoundsException
がスローされます。len
がゼロの場合、バイトは書き込まれません。それ以外の場合は、最初にバイトb[off]
が書き込まれ、次にb[off+1]
という具合に続き、最後に書き込まれるバイトはb[off+len-1]
になります。b
- データ。off
- データの開始オフセット。len
- 書き込むバイト数。IOException
- 入出力エラーが発生した場合。void writeBoolean(boolean v) throws IOException
boolean
値をこの出力ストリームに書き込みます。引数v
がtrue
の場合は値(byte)1
が書き込まれ、v
がfalse
の場合は値(byte)0
が書き込まれます。このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadBoolean
メソッドによって読み取られ、そのあとに、v
に相当するboolean
が返されます。v
- 書き込まれるboolean。IOException
- 入出力エラーが発生した場合。void writeByte(int v) throws IOException
v
の下位8ビットを出力ストリームに書き込みます。v
の上位24ビットは無視されます。これはwriteByte
が、整数引数のwrite
とまったく同じであることを意味します。このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadByte
メソッドによって読み取られ、そのあとに、(byte)v
に相当するbyte
が返されます。v
- 書き込まれるバイト値。IOException
- 入出力エラーが発生した場合。void writeShort(int v) throws IOException
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadShort
メソッドによって読み取られ、そのあとに、(short)v
に相当するshort
が返されます。
v
- 書き込まれるshort
値。IOException
- 入出力エラーが発生した場合。void writeChar(int v) throws IOException
char
値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadChar
メソッドによって読み取られ、そのあとに、(char)v
に相当するchar
が返されます。
v
- 書き込まれるchar
値。IOException
- 入出力エラーが発生した場合。void writeInt(int v) throws IOException
int
値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。
(byte)(0xff & (v >> 24))
(byte)(0xff & (v >> 16))
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadInt
メソッドによって読み取られ、そのあとに、v
に相当するint
が返されます。
v
- 書き込まれるint
値。IOException
- 入出力エラーが発生した場合。void writeLong(long v) throws IOException
long
値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。
(byte)(0xff & (v >> 56))
(byte)(0xff & (v >> 48))
(byte)(0xff & (v >> 40))
(byte)(0xff & (v >> 32))
(byte)(0xff & (v >> 24))
(byte)(0xff & (v >> 16))
(byte)(0xff & (v >> 8))
(byte)(0xff & v)
このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadLong
メソッドによって読み取られ、そのあとに、v
に相当するlong
が返されます。
v
- 書き込まれるlong
値。IOException
- 入出力エラーが発生した場合。void writeFloat(float v) throws IOException
float
値を出力ストリームに書き込みます。これは、最初にこのfloat
値をFloat.floatToIntBits
メソッドと同じ方法でint
に変換し、次にint
値をwriteInt
メソッドと同じ方法で書き込むようにして行われます。このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadFloat
メソッドによって読み取られ、そのあとに、v
に相当するfloat
が返されます。v
- 書き込まれるfloat
値。IOException
- 入出力エラーが発生した場合。void writeDouble(double v) throws IOException
double
値を出力ストリームに書き込みます。これは、最初にこのdouble
値をDouble.doubleToLongBits
メソッドと同じ方法でlong
に変換し、次にlong
値をwriteLong
メソッドと同じ方法で書き込むようにして行われます。このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadDouble
メソッドによって読み取られ、そのあとに、v
に相当するdouble
が返されます。v
- 書き込まれるdouble
値。IOException
- 入出力エラーが発生した場合。void writeBytes(String s) throws IOException
s
の各文字が順番に取り出され、1バイトが出力ストリームに書き込まれます。s
がnull
の場合、NullPointerException
がスローされます。 s.length
がゼロの場合、バイトは書き込まれません。それ以外の場合は、最初に文字s[0]
が書き込まれ、次にs[1]
という具合に続き、最後に書き込まれる文字はs[s.length-1]
になります。各文字については、writeByte
メソッドとまったく同じ方法で、1バイト、つまり下位バイトが書き込まれます。文字列内の各文字の上位8ビットは無視されます。
s
- 書き込まれるバイトの文字列。IOException
- 入出力エラーが発生した場合。void writeChars(String s) throws IOException
s
内の各文字を、1文字ごとに2バイトずつ順番に書き込みます。s
がnull
の場合、NullPointerException
がスローされます。s.length
がゼロの場合、書き込まれる文字はありません。それ以外の場合は、最初に文字s[0]
が書き込まれ、次にs[1]
という具合に続き、最後に書き込まれる文字はs[s.length-1]
になります。各文字については、writeChar
メソッドとまったく同じ方法で、上位バイトを先にして2バイトが実際に書き込まれます。s
- 書き込まれる文字列値。IOException
- 入出力エラーが発生した場合。void writeUTF(String s) throws IOException
s
内の各文字の修正UTF-8表現が続きます。s
がnull
の場合、NullPointerException
がスローされます。文字列s
内の各文字は、文字の値に基づいて、1、2、または3バイトのグループに変換されます。
文字c
が\u0001
- \u007f
の範囲にある場合、次のような1バイトで表現されます。
(byte)c
文字c
が\u0000
の場合や、\u0080
- \u07ff
の範囲にある場合には、次の順序で書き込まれる2バイトによって表されます。
(byte)(0xc0 | (0x1f & (c >> 6)))
(byte)(0x80 | (0x3f & c))
文字c
が\u0800
- uffff
の範囲にある場合、次の順序で書き込まれる3バイトによって表されます。
(byte)(0xe0 | (0x0f & (c >> 12)))
(byte)(0x80 | (0x3f & (c >> 6)))
(byte)(0x80 | (0x3f & c))
まず、s
のすべての文字を表すのに必要な総バイト数が計算されます。この数値が65535
を超える場合は、UTFDataFormatException
がスローされます。それ以外の場合は、この長さがwriteShort
メソッドとまったく同じ方法で出力ストリームに書き込まれます。次に、文字列s
内の各文字の1、2、または3バイト表現が書き込まれます。
このメソッドによって書き込まれたバイトは、インタフェースDataInput
のreadUTF
メソッドによって読み取られ、そのあとに、s
に相当するString
が返されます。
s
- 書き込まれる文字列値。IOException
- 入出力エラーが発生した場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.