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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。