Foundation 1.1.2

java.io
インタフェース DataOutput

既知のサブインタフェースの一覧:
Datagram, ObjectOutput
既知の実装クラスの一覧:
DataOutputStream, ObjectOutputStream, RandomAccessFile

public interface DataOutput

Java のプリミティブ型があればそのデータを一連のバイトに変換してバイナリストリームに書き込むために提供されています。また、String を Java の修正 UTF-8 形式に変換して結果の一連のバイトを書き込む機能もあります。  

このインタフェースのバイトを書き込むすべてのメソッドでは、なんらかの理由でバイトを書き込めない場合は、通常、IOException がスローされます。

導入されたバージョン:
JDK1.0
関連項目:
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 str)
          長さ情報の 2 バイトを出力ストリームに書き込みます。
 

メソッドの詳細

write

void write(int b)
           throws IOException
引数 b の下位 8 ビットを出力ストリームに書き込みます。b の上位 24 ビットは無視されます。

パラメータ:
b - 書き込むバイト
例外:
IOException - 入出力エラーが発生した場合

write

void write(byte[] b)
           throws IOException
出力ストリームに配列 b のすべてのバイトを書き込みます。bnull の場合、NullPointerException がスローされます。b.length がゼロの場合、バイトは書き込まれません。そうでない場合は、まずバイト b[0]、次に b[1] と順次書き込まれ、最後にバイト b[b.length-1] が書き込まれます。

パラメータ:
b - データ
例外:
IOException - 入出力エラーが発生した場合

write

void write(byte[] b,
           int off,
           int len)
           throws IOException
配列 b から len バイトを順番に出力ストリームに書き込みます。bnull の場合は、NullPointerException がスローされます。off が負の値の場合、len が負の値の場合、あるいは off+len が配列 b の長さより大きい場合には、IndexOutOfBoundsException がスローされます。len がゼロの場合、バイトは書き込まれません。そうでない場合は、まずバイト b[off]、次に b[off+1] と順次書き込まれ、最後にバイト b[off+len-1] が書き込まれます。

パラメータ:
b - データ
off - データの開始オフセット
len - 書き込むバイト数
例外:
IOException - 入出力エラーが発生した場合

writeBoolean

void writeBoolean(boolean v)
                  throws IOException
1 つの boolean 値を出力ストリームに書き込みます。引数 vtrue の場合は、値 (byte)1 が書き込まれます。vfalse の場合は、値 (byte)0 が書き込まれます。このメソッドが書き込むバイトは、DataInput インタフェースの readBoolean メソッドによって読み込まれます。次に、readBoolean メソッドにより、v に等しい boolean が返されます。

パラメータ:
v - 書き込まれる boolean
例外:
IOException - 入出力エラーが発生した場合

writeByte

void writeByte(int v)
               throws IOException
引数 v の下位 8 ビットを出力ストリームに書き込みます。v の上位 24 ビットは無視されます。これは writeByte が、整数引数の write とまったく同じであることを意味します。このメソッドが書き込むバイトは、DataInput インタフェースの readByte メソッドによって読み込まれます。次に、readByte メソッドにより、(byte)v に等しい byte が返されます。

パラメータ:
v - 書き込まれるバイト値
例外:
IOException - 入出力エラーが発生した場合

writeShort

void writeShort(int v)
                throws IOException
引数の値を表す 2 バイトを出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。


 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)
  

このメソッドが書き込むバイトは、DataInput インタフェースの readShort メソッドによって読み込まれます。次に、readShort メソッドにより、(short)v に等しい short が返されます。

パラメータ:
v - 書き込まれる short
例外:
IOException - 入出力エラーが発生した場合

writeChar

void writeChar(int v)
               throws IOException
2 バイトから構成される char 値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。


 (byte)(0xff & (v >> 8))
 (byte)(0xff & v)
 

このメソッドが書き込むバイトは、DataInput インタフェースの readChar メソッドによって読み込まれます。次に、readChar メソッドにより、(char)v に等しい char が返されます。

パラメータ:
v - 書き込まれる char
例外:
IOException - 入出力エラーが発生した場合

writeInt

void writeInt(int v)
              throws IOException
4 バイトから構成される int 値を出力ストリームに書き込みます。次に示すバイト値が、この順番で書き込まれます。


 (byte)(0xff & (v >> 24))
 (byte)(0xff & (v >> 16))
 (byte)(0xff & (v >>    8))
 (byte)(0xff & v)
 

このメソッドが書き込むバイトは、DataInput インタフェースの readInt メソッドによって読み込まれます。readInt メソッドは次に、v に等しい int を返します。

パラメータ:
v - 書き込まれる int
例外:
IOException - 入出力エラーが発生した場合

writeLong

void writeLong(long v)
               throws IOException
8 バイトから構成される 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 メソッドによって読み込まれます。次に、readLong メソッドにより、v に等しい long が返されます。

パラメータ:
v - 書き込まれる long
例外:
IOException - 入出力エラーが発生した場合

writeFloat

void writeFloat(float v)
                throws IOException
4 バイトから構成される float 値を出力ストリームに書き込みます。このためには、まず Float.floatToIntBits メソッドとまったく同じ方法でこの float 値を int に変換してから、writeInt メソッドとまったく同じ方法で int 値を書き込みます。このメソッドが書き込むバイトは、DataInput インタフェースの readFloat メソッドによって読み込まれます。次に、readFloat メソッドにより、v に等しい float が返されます。

パラメータ:
v - 書き込まれる float
例外:
IOException - 入出力エラーが発生した場合

writeDouble

void writeDouble(double v)
                 throws IOException
8 バイトから構成される double 値を出力ストリームに書き込みます。このためには、まず Double.doubleToLongBits メソッドとまったく同じ方法でこの double 値を long に変換してから、writeLong メソッドとまったく同じ方法で long 値を書き込みます。このメソッドが書き込むバイトは、DataInput インタフェースの readDouble メソッドによって読み込まれます。次に、readDouble メソッドにより、v に等しい double が返されます。

パラメータ:
v - 書き込まれる double
例外:
IOException - 入出力エラーが発生した場合

writeBytes

void writeBytes(String s)
                throws IOException
文字列を出力ストリームに書き込みます。文字列 s の各文字が順番に取り出され、1 バイトが出力ストリームに書き込まれます。snull の場合は、NullPointerException がスローされます。

s.length がゼロの場合、バイトは書き込まれません。そうでない場合は、まず文字 s[0]、次に s[1] と順次書き込まれ、最後に文字 s[s.length-1] が書き込まれます。各文字については、writeByte メソッドとまったく同じ方法で、1 バイト、つまり下位バイトが書き込まれます。文字列内の各文字の上位 8 ビットは無視されます。

パラメータ:
s - 書き込まれるバイトの文字列
例外:
IOException - 入出力エラーが発生した場合

writeChars

void writeChars(String s)
                throws IOException
文字列 s 内の各文字を、1 文字ごとに 2 バイトずつ出力ストリームに順番に書き込みます。snull の場合、NullPointerException がスローされます。s.length がゼロの場合、文字は書き込まれません。そうでない場合は、まず文字 s[0]、次に s[1] と順次書き込まれ、最後に文字 s[s.length-1] が書き込まれます。各文字については、writeChar メソッドとまったく同じ方法で、上位バイトを先にして 2 バイトが実際に書き込まれます。

パラメータ:
s - 書き込まれる文字列の値
例外:
IOException - 入出力エラーが発生した場合

writeUTF

void writeUTF(String str)
              throws IOException
長さ情報の 2 バイトを出力ストリームに書き込みます。その後ろには、文字列 s 内の各文字の Java の修正 UTF 表現が続きます。snull の場合、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\u0800uffff の範囲にある場合、次の順序で書き込まれる 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 メソッドによって読み込まれます。次に、readUTF メソッドにより、s に等しい String が返されます。

パラメータ:
str - 書き込まれる文字列の値
例外:
IOException - 入出力エラーが発生した場合

Foundation 1.1.2

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。