|
||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||
このクラスのインスタンスは、ランダムアクセスファイルに対する読み取りと書き込みの両方をサポートしています。ランダムアクセスファイルは、ファイルシステムに格納されている大規模なバイトの配列と同じように動作します。この暗黙の配列の中には、「ファイルポインタ」と呼ばれる一種のカーソルまたはインデックスがあります。入力操作では、ファイルポインタからバイトの読み取りを開始し、読み取られたバイトの先までファイルポインタを進めます。ランダムアクセスファイルが読み取り / 書き込みモードで作成されている場合は、出力操作も利用できます。出力操作では、ファイルポインタからバイトの書き込みを開始し、書き込まれたバイトの先までファイルポインタを進めます。出力操作で暗黙の配列の現在の終了箇所を超えて書き込みを行うと、配列が拡張されます。ファイルポインタは、getFilePointer メソッドによって読み取り、seek メソッドによって設定することができます。
一般に、このクラスのすべての読み取りルーチンについて言えることですが、必要なバイト数を読み取る前にファイルの終わりに達した場合は、EOFException (一種の IOException) がスローされます。ファイルの終わり以外の何らかの理由でバイトを読み取れない場合は、EOFException ではなく IOException がスローされます。特に、ストリームが閉じていると、IOException がスローされる可能性があります。
実装では、ファイルに書き込める最大のデータ量を適用するようにしてください。
| メソッドの概要 | |
void |
close()
このランダムアクセスファイルのストリームを閉じて、ストリームに関連したシステムリソースをすべて解放します。 |
long |
getFilePointer()
このファイルの現在のオフセットを返します。 |
long |
length()
このファイルの長さを返します。 |
int |
read()
このファイルから 1 バイトのデータを読み取ります。 |
int |
read(byte[] b)
このファイルから最高 b.length バイトのデータを読み取り、バイトの配列に格納します。 |
int |
read(byte[] b,
int off,
int len)
このファイルから最高 len バイトのデータを読み取り、バイトの配列に格納します。 |
boolean |
readBoolean()
このファイルから boolean 値を読み取ります。 |
byte |
readByte()
このファイルから 8 ビットの符号付きの値を読み取ります。 |
char |
readChar()
このファイルから Unicode 文字を読み取ります。 |
double |
readDouble()
このファイルから double を読み取ります。 |
float |
readFloat()
このファイルから float を読み取ります。 |
void |
readFully(byte[] b)
現在のファイルポインタから始まる b.length バイトをこのファイルから読み取り、バイト配列に格納します。 |
void |
readFully(byte[] b,
int off,
int len)
現在のファイルポインタから始まる len バイトをこのファイルから正確に読み取り、バイト配列に格納します。 |
int |
readInt()
このファイルから 32 ビットの符号付き整数を読み取ります。 |
java.lang.String |
readLine()
このファイルから、次のテキスト行を読み取ります。 |
long |
readLong()
このファイルから 64 ビットの符号付き整数を読み取ります。 |
short |
readShort()
このファイルから 16 ビットの符号付きの数値を読み取ります。 |
int |
readUnsignedByte()
このファイルから 8 ビットの符号なしの数値を読み取ります。 |
int |
readUnsignedShort()
このファイルから 16 ビットの符号なしの数値を読み取ります。 |
java.lang.String |
readUTF()
このファイルから文字列を読み取ります。 |
void |
seek(long pos)
このファイルの先頭から測定されたファイルポインタのオフセットを設定します。 |
void |
setLength(long newLength)
このファイルの長さを設定します。 |
int |
skipBytes(int n)
n バイトの入力をスキップして、そのスキップされたバイトを破棄します。
|
void |
write(byte[] b)
b.length バイトを指定されたバイト配列からこのファイルに書き込みます。 |
void |
write(byte[] b,
int off,
int len)
オフセット off から始まる len バイトを指定されたバイト配列からこのファイルに書き込みます。 |
void |
write(int b)
指定されたバイトをこのファイルに書き込みます。 |
void |
writeBoolean(boolean v)
boolean を 1 バイトの値としてファイルに書き込みます。 |
void |
writeByte(int v)
byte を 1 バイトの値としてファイルに書き込みます。 |
void |
writeBytes(java.lang.String s)
文字列を一連のバイトとしてファイルに書き込みます。 |
void |
writeChar(int v)
char を 2 バイトの値 (上位バイトが先) としてファイルに書き込みます。 |
void |
writeChars(java.lang.String s)
文字列を一連の文字としてファイルに書き込みます。 |
void |
writeDouble(double v)
Double クラスの doubleToLongBits メソッドを使用して、double 引数を long に変換してから、その long 値を 8 バイトの値 (上位バイトが先) としてファイルに書き込みます。 |
void |
writeFloat(float v)
Float クラスの floatToIntBits メソッドを使用して、float 引数を int に変換してから、その int 値を 4 バイトの値 (上位バイトが先) としてファイルに書き込みます。 |
void |
writeInt(int v)
int を 4 バイト (上位バイトが先) としてファイルに書き込みます。 |
void |
writeLong(long v)
long を 8 バイト(上位バイトが先) としてファイルに書き込みます 。 |
void |
writeShort(int v)
short を 2 バイト (上位バイトが先) としてファイルに書き込みます。 |
void |
writeUTF(java.lang.String str)
マシンに依存しない方法で、UTF-8 エンコーディングを使用して文字列をファイルに書き込みます。 |
| メソッドの詳細 |
public void close()
throws java.io.IOException
java.io.IOException - 入出力エラーが発生した場合
public long length()
throws java.io.IOException
java.io.IOException - 入出力エラーが発生した場合
public long getFilePointer()
throws java.io.IOException
java.io.IOException - 入出力エラーが発生した場合
public int read()
throws java.io.IOException
0x00-0x0ff) の整数として返されます。入力が行えない場合は、このメソッドはブロックされます。
JNLPRandomAccessFile は InputStream のサブクラスではありませんが、このメソッドは InputStream の read メソッドとまったく同じように動作します。
-1java.io.IOException - 入出力エラーが発生した場合。ファイルの終わりに達した場合はスローされない
public int read(byte[] b,
int off,
int len)
throws java.io.IOException
len バイトのデータを読み取り、バイトの配列に格納します。最低 1 バイトの入力が行われるまで、このメソッドはブロックされます。
JNLPRandomAccessFile は InputStream のサブクラスではありませんが、このメソッドは InputStream の read(byte[], int, int) メソッドとまったく同じように動作します。
b - データが読み込まれるバッファoff - データのスタートオフセットlen - 読み取られる最大バイト数-1java.io.IOException - 入出力エラーが発生した場合
public int read(byte[] b)
throws java.io.IOException
b.length バイトのデータを読み取り、バイトの配列に格納します。最低 1 バイトの入力が行われるまで、このメソッドはブロックされます。
JNLPRandomAccessFile は InputStream のサブクラスではありませんが、このメソッドは InputStream の read(byte[]) メソッドとまったく同じように動作します。
b - データが読み込まれるバッファ-1java.io.IOException - 入出力エラーが発生した場合
public void readFully(byte[] b)
throws java.io.IOException
b.length バイトをこのファイルから読み取り、バイト配列に格納します。このメソッドでは、要求されたバイト数が読み取られるまで、繰り返しこのファイルから読み取りを行います。要求されたバイト数が読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。java.io.DataInput 内の readFullyb - データが読み込まれるバッファEOFException - すべてのバイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public void readFully(byte[] b,
int off,
int len)
throws java.io.IOException
len バイトをこのファイルから正確に読み取り、バイト配列に格納します。このメソッドでは、要求されたバイト数が読み取られるまで、繰り返しこのファイルから読み取りを行います。要求されたバイト数が読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。java.io.DataInput 内の readFullyb - データが読み込まれるバッファoff - データのスタートオフセットlen - 読み取られるバイト数EOFException - すべてのバイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public int skipBytes(int n)
throws java.io.IOException
n バイトの入力をスキップして、そのスキップされたバイトを破棄します。
このメソッドでは、スキップされるバイト数がかなり少なくなる (ゼロの場合もある) 場合があります。これが起きる原因には、さまざまな状況が考えられます。可能性の 1 つとして、n バイトがスキップされる前にファイルの終わりに達することがあげられます。このメソッドでは、EOFException がスローされることはありません。実際にスキップされたバイト数が返されます。n が負の数である場合は、スキップされるバイトはありません。
java.io.DataInput 内の skipBytesn - スキップされるバイト数java.io.IOException - 入出力エラーが発生した場合
public boolean readBoolean()
throws java.io.IOException
boolean 値を読み取ります。このメソッドでは、現在のファイルポインタから始まる 1 バイトをファイルから読み取ります。値 0 は false を表します。それ以外の値は true を表します。そのバイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。java.io.DataInput 内の readBooleanboolean の値EOFException - ファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public byte readByte()
throws java.io.IOException
b であり、ここで 0 <= b <= 255 である場合、結果は次のようになります。
(byte)(b)
そのバイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readBytebyte とみなされるEOFException - ファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public int readUnsignedByte()
throws java.io.IOException
そのバイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readUnsignedByteEOFException - ファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public short readShort()
throws java.io.IOException
b1、b2 であり、それらの各値が 0 〜 255 (0 と 255 を含む) である場合、結果は次のようになります。
(short)((b1 << 8) | b2)
その 2 バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readShortEOFException - 2 バイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public int readUnsignedShort()
throws java.io.IOException
b1、b2 であり、ここで 0 <= b1, b2 <= 255 である場合、結果は次のようになります。
(b1 << 8) | b2
その 2 バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readUnsignedShortEOFException - 2 バイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public char readChar()
throws java.io.IOException
b1、b2 であり、ここで 0 <= b1, b2 <= 255 である場合、結果は次のようになります。
(char)((b1 << 8) | b2)
その 2 バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readCharEOFException - 2 バイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public int readInt()
throws java.io.IOException
b1、b2、b3、b4 であり、ここで 0 <= b1, b2, b3, b4 <= 255 である場合、結果は次のようになります。
(b1 << 24) | (b2 << 16) + (b3 << 8) + b4
その 4 バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readIntint とみなされるEOFException - 4 バイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public long readLong()
throws java.io.IOException
b1、b2、b3、b4、b5、b6、b7、b8 であり、ここで次の条件が満たされる場合、
0 <= b1, b2, b3, b4, b5, b6, b7, b8 <=255,
結果は次のようになります。
((long)b1 << 56) + ((long)b2 << 48)
+ ((long)b3 << 40) + ((long)b4 << 32)
+ ((long)b5 << 24) + ((long)b6 << 16)
+ ((long)b7 << 8) + b8
その 8 バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readLonglong とみなされるEOFException - 8 バイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合
public float readFloat()
throws java.io.IOException
float を読み取ります。このメソッドでは、readInt メソッドと同様に、現在のファイルポインタから始まる int 値を読み取り、Float クラスの intBitsToFloat メソッドを使用して、その int を float に変換します。
その 4 バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readFloatfloat とみなされるEOFException - 4 バイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合readInt()
public double readDouble()
throws java.io.IOException
double を読み取ります。このメソッドでは、readLong メソッドと同様に、現在のファイルポインタから始まる long 値を読み取り、Double クラスの longBitsToDouble メソッドを使用して、その long を double に変換します。
その 8 バイトが読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readDoubledouble とみなされるEOFException - 8 バイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合readLong()
public java.lang.String readLine()
throws java.io.IOException
1 行のテキストは、キャリッジリターン文字 ('\r')、改行文字 ('\n')、キャリッジリターン文字の直後の改行文字、またはファイルの終わりによって終了します。 行末文字は破棄され、返される文字の一部にはなりません。
改行文字が読み取られるか、キャリッジリターンとその後のバイトが読み取られるか (改行かどうかを確認するため)、ファイルの終わりに達するか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readLinejava.io.IOException - 入出力エラーが発生した場合
public java.lang.String readUTF()
throws java.io.IOException
このメソッドでは、readUnsignedShort と同様に、現在のファイルポインタから始まる最初の 2 バイトが読み取られます。この値は、結果として得られる文字列の長さではなく、符号化された文字列に含まれている後続のバイトの数を示します。後続のバイトは、UTF-8 形式で文字を符号化するためのバイトと見なされ、文字に変換されます。
それらのバイトがすべて読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで、このメソッドはブロックされます。
java.io.DataInput 内の readUTFEOFException - すべてのバイトを読み取る前にファイルの終わりに達した場合java.io.IOException - 入出力エラーが発生した場合UTFDataFormatException - 読み取られたバイトが有効な Unicode 文字列の UTF-8 エンコーディングになっていない場合readUnsignedShort()
public void seek(long pos)
throws java.io.IOException
pos - ファイルの先頭からバイト単位で測定されたオフセット位置、この場所でファイルポインタが設定されるjava.io.IOException - pos が 0 よりも小さい場合、または入出力エラーが発生した場合
public void setLength(long newLength)
throws java.io.IOException
length メソッドによって返されたファイルの現在の長さが newLength 引数よりも大きい場合、このファイルは切り捨てられます。この場合、getFilePointer メソッドによって返されたファイルオフセットが newLength よりも大きい場合、このオフセットは newLength と等しくなります。
length メソッドによって返されたファイルの現在の長さが newLength 引数よりも小さい場合、このファイルは拡張されます。この場合、ファイルの拡張部分の内容は未定義です。
newLength - 望ましいファイルの長さjava.io.IOException - 入出力エラーが発生した場合
public void write(int b)
throws java.io.IOException
java.io.DataOutput 内の writeb - 書き込まれる bytejava.io.IOException - 入出力エラーが発生した場合
public void write(byte[] b)
throws java.io.IOException
b.length バイトを指定されたバイト配列からこのファイルに書き込みます。書き込みは、現在のファイルポインタから開始されます。java.io.DataOutput 内の writeb - データjava.io.IOException - 入出力エラーが発生した場合
public void write(byte[] b,
int off,
int len)
throws java.io.IOException
off から始まる len バイトを指定されたバイト配列からこのファイルに書き込みます。java.io.DataOutput 内の writeb - データoff - データのスタートオフセットlen - 書き込むバイト数java.io.IOException - 入出力エラーが発生した場合
public void writeBoolean(boolean v)
throws java.io.IOException
boolean を 1 バイトの値としてファイルに書き込みます。値 true は、値 (byte)1 として書き込まれます。値 false は、値 (byte)0 として書き込まれます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeBooleanv - 書き込まれる boolean 値java.io.IOException - 入出力エラーが発生した場合
public void writeByte(int v)
throws java.io.IOException
byte を 1 バイトの値としてファイルに書き込みます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeBytev - 書き込まれる byte 値java.io.IOException - 入出力エラーが発生した場合
public void writeShort(int v)
throws java.io.IOException
short を 2 バイト (上位バイトが先) としてファイルに書き込みます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeShortv - 書き込まれる shortjava.io.IOException - 入出力エラーが発生した場合
public void writeChar(int v)
throws java.io.IOException
char を 2 バイトの値 (上位バイトが先) としてファイルに書き込みます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeCharv - 書き込まれる char 値java.io.IOException - 入出力エラーが発生した場合
public void writeInt(int v)
throws java.io.IOException
int を 4 バイト (上位バイトが先) としてファイルに書き込みます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeIntv - 書き込まれる intjava.io.IOException - 入出力エラーが発生した場合
public void writeLong(long v)
throws java.io.IOException
long を 8 バイト(上位バイトが先) としてファイルに書き込みます 。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeLongv - 書き込まれる longjava.io.IOException - 入出力エラーが発生した場合
public void writeFloat(float v)
throws java.io.IOException
Float クラスの floatToIntBits メソッドを使用して、float 引数を int に変換してから、その int 値を 4 バイトの値 (上位バイトが先) としてファイルに書き込みます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeFloatv - 書き込まれる float 値java.io.IOException - 入出力エラーが発生した場合
public void writeDouble(double v)
throws java.io.IOException
Double クラスの doubleToLongBits メソッドを使用して、double 引数を long に変換してから、その long 値を 8 バイトの値 (上位バイトが先) としてファイルに書き込みます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeDoublev - 書き込まれる double 値java.io.IOException - 入出力エラーが発生した場合
public void writeBytes(java.lang.String s)
throws java.io.IOException
java.io.DataOutput 内の writeBytess - 書き込まれる文字列 (バイト列)java.io.IOException - 入出力エラーが発生した場合
public void writeChars(java.lang.String s)
throws java.io.IOException
writeChar メソッドと同様に、各文字がデータ出力ストリームに書き込まれます。書き込みは、ファイルポインタの現在位置から開始されます。java.io.DataOutput 内の writeCharss - 書き込まれる String 値java.io.IOException - 入出力エラーが発生した場合writeChar(int)
public void writeUTF(java.lang.String str)
throws java.io.IOException
このメソッドでは、後続のバイトの数を示す writeShort メソッドと同様に、まず 2 バイトが現在のファイルポインタを先頭にしてファイルに書き込まれます。この値は、文字列の長さではなく、実際に書き込まれるバイトの数を表しています。この長さに続いて、文字列の各文字が順番に、UTF-8 エンコーディングを使用して出力されます。
java.io.DataOutput 内の writeUTFstr - 書き込まれる文字列java.io.IOException - 入出力エラーが発生した場合
|
||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||