|
Unofficial "CLDC 1.0 + MIDP 1.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.io.Reader
public abstract class Reader
文字をストリーム入力するための機能の枠組みを持った抽象クラスです。
サブクラスでは最低限 read(char[], int, int)
メソッドと close()
メソッドを実装する必要があります。
Writer
フィールドの概要 | |
---|---|
protected Object |
lock
このクラスがストリーム処理を行う際に同期を取るために使用するオブジェクトを保持しています。 |
コンストラクタの概要 | |
---|---|
protected |
Reader()
自分自身をロック対象のオブジェクトに設定したオブジェクトを生成します。 |
protected |
Reader(Object lock)
渡されたオブジェクトを同期要求に使用するように設定したオブジェクトを生成します。 |
メソッドの概要 | |
---|---|
abstract void |
close()
ストリームをクローズし、関連するリソースを全て開放します。 |
void |
mark(int limitlen)
ストリームが指している現在位置をマークします。 |
boolean |
markSupported()
ストリームが mark(int) メソッドと reset() メソッドによる操作に対応しているかどうかを返します。 |
int |
read()
文字を1つ読み出します。 |
int |
read(char[] data)
渡された char 型の配列へ文字列を読み出して格納します。 |
abstract int |
read(char[] data,
int index,
int length)
ストリームから指定された数の文字を渡された char 配列の指定位置へ読み出します。 |
boolean |
ready()
ストリームから文字をブロックせずに読み出せるかどうかを返します。 |
void |
reset()
ストリームが次回文字を読み出す位置を、最後に mark(int) メソッドによってマークした位置あるいは実装に固有な規定位置に戻します。 |
long |
skip(long length)
ストリームから指定された数の文字を読み飛ばします。 |
クラス java.lang.Object から継承されたメソッド |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
protected Object lock
このクラスがストリーム処理を行う際に同期を取るために使用するオブジェクトを保持しています。 ストリーム処理で同期が必要な処理を行う場合にはこのオブジェクトに対して同期の要求を行います。 このクラスのサブクラスでも同期が必要な場合はこのオブジェクトに対して同期の要求を出すように記述しなければなりません。
ロックは以下のような記述で行います。
synchronized(lock) { // ロックが必要な処理をここに記述する。 }
コンストラクタの詳細 |
---|
protected Reader()
自分自身をロック対象のオブジェクトに設定したオブジェクトを生成します。
protected Reader(Object lock)
渡されたオブジェクトを同期要求に使用するように設定したオブジェクトを生成します。
lock
- 同期に使用するオブジェクトを渡します。メソッドの詳細 |
---|
public int read() throws IOException
文字を1つ読み出します。 このメソッドは文字の読み出しが終了するか、例外が throw されるかあるいは終端に達するまでブロックします。
サブクラスが最適化された1文字読み出し処理をサポートできる場合はこのメソッドをオーバーライドして実装すべきです。
int
型の値(0x0000
〜 0xffff
)として返します。これは読み出した char
型の値を int
型でキャストした値を取得するのと等価です。
IOException
- データの読み出し時に何らかの障害が発生した場合に throw します。Writer.write(int)
public int read(char[] data) throws IOException
渡された char
型の配列へ文字列を読み出して格納します。
このメソッドは data.length
が示す文字数の読み出しが完了するか、終端に達するかあるいは例外が throw されるまでブロックします。
このメソッドで例外が throw されるのは以下の場合です。
IOException
を throw します。
data
が null
場合は NullPointerException
が throw されます。
これらの例外が throw された場合でも、そこまでに読み込んだ文字は data
に格納されます。
返り値として実際に読み込んだ文字数を返します。ストリームが終端に達していて文字が読み出せなかった場合は -1
を返します。
Reader
クラスにおけるこのメソッドは、read(data, 0, data.length)
と記述するのと等価です。
サブクラスが最適化された文字列の読み出し処理をサポートできる場合はこのメソッドをオーバーライドして実装すべきです。
data
- 読み出した文字列を格納する char
型の配列を渡します。
-1
を返します。
IOException
- 文字の読み出し時に何らかの障害が発生した場合に throw します。
NullPointerException
- data
に null
が渡された場合に throw します。Writer.write(char[])
public abstract int read(char[] data, int index, int length) throws IOException
ストリームから指定された数の文字を渡された char
配列の指定位置へ読み出します。
このメソッドは指定された数の文字の読み出しを完了するか、ストリームが終端に達するかあるいは例外が throw されるまでブロックします。
このメソッドで例外が throw されるのは以下の場合です。
IOException
を throw します。
index
が負数あるいは index + length
が data
のサイズを超える場合は IndexOutOfBoundsException
を throw します。
data
が null
場合は NullPointerException
が throw されます。
これらの例外が throw された場合でも、そこまでに読み込んだ文字は data
に格納されます。
返り値として実際に読み込んだ文字数を返します。入力ストリームが終端に達していてデータが読み出せなかった場合は -1
を返します。
サブクラスではこのメソッドを必ずオーバーライドして実装しなければなりません。
data
- 読み出した文字列を書き込む char
配列を渡します。index
- 読み出した文字列を書き込み開始する char
配列の位置を渡します。length
- 読み出す文字数を渡します。
-1
を返します。
IOException
- 初回の文字読み出しがストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
NullPointerException
- data
に null
が渡された場合に throw します。
IndexOutOfBoundsException
- index
が負数あるいは index + length
が data
のサイズを超える場合に throw します。Writer.write(char[], int, int)
public long skip(long length) throws IOException
ストリームから指定された数の文字を読み飛ばします。 しかし、実際に読み飛ばすことのできる文字数がさまざまな要因(ストリームが終端に達するなど)によって指定された文字数に達しないこともあります。 戻り値には実際に読み飛ばした文字数を返します。
このメソッドは指定された数の文字を読み捨てるか例外が throw されるかあるいは終端に達するまでブロックします。
サブクラスでより効率的な処理が可能な場合はオーバーライドして処理を記述すべきです。
length
- 読み飛ばす文字数を渡します。
IOException
- ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。public boolean ready() throws IOException
ストリームから文字をブロックせずに読み出せるかどうかを返します。
次回の read()
メソッドの呼び出しがブロックしない場合には true
を、ブロックする場合およびブロックするかどうか不明な場合は false
を返します。
なお、false
が返された次の read()
メソッドの呼び出しが必ずブロックするわけではありません。
true
を、そうではない場合は false
を返します。
IOException
- 判定を行う際に何らかの障害が発生した場合に throw します。public boolean markSupported()
ストリームが mark(int)
メソッドと reset()
メソッドによる操作に対応しているかどうかを返します。
Reader
クラスにおけるこのメソッドは常に false
を返します。
mark(int)
メソッドと reset()
メソッドによる操作をサポートしている場合は true
を、サポートしていない場合は false
を返します。mark(int)
,
reset()
public void mark(int limitlen) throws IOException
ストリームが指している現在位置をマークします。
reset()
メソッドを呼び出すと入力ストリームが次回文字を取り出す位置がマークした位置へ戻ります。
これにより、ストリームの特定部分を繰り返し読むことができます。
パラメータで渡された limitlen
は、位置をマークしてから読み出す可能性のある最大文字数を示しています。
この文字数を超えてストリームのデータを操作した場合、マーク位置が無効になることがあります。
このメソッドは、mark(int)
メソッドによってマークした位置へ reset()
メソッドによって読み出し位置を戻す機能をサポートしている場合は markSupported()
メソッドは true
を返し、mark(int)
メソッドはパラメータによって渡された limitlen
が示す文字数の操作が行われても reset()
メソッドでマーク位置に戻れるように処理を実装する様に規定されています。
Reader
クラスにおけるこのメソッドは何も処理を行いません。
limitlen
- 現在位置をマークしてから読み出される可能性のある最大バイト数を渡します。
IOException
- ストリームがこのメソッドをサポートしない場合あるいは処理上何らかの障害が発生した場合に throw します。public void reset() throws IOException
ストリームが次回文字を読み出す位置を、最後に mark(int)
メソッドによってマークした位置あるいは実装に固有な規定位置に戻します。
このメソッドは以下の様に実装することが規定されています。
mark(int)
メソッドによる操作をサポートしている場合
markSupported()
メソッドは true
を返します。
mark(int)
メソッドが呼び出されていない場合、あるいはマーク後に取り扱われたデータのサイズが mark(int)
メソッドで指定されたサイズよりも多く、位置が無効となっている場合は IOException
を throw します。
IOException
を throw しない場合は mark(int)
メソッドでマークした位置(マークした位置がない場合はその入力ストリームの先頭)に読み出し位置を戻します。
mark(int)
メソッドによる操作をサポートしていない場合
markSupported()
メソッドは false
を返します。
reset()
メソッドによる処理をサポートしていない場合は IOException
を throw します。
IOException
を throw しない場合はその入力ストリームに固有の状態にリセットします。次回以降に取り扱うことのできるデータは実装に依存します。
Reader
クラスにおけるこのメソッドは何も処理を行わずに常に IOException
を throw します。
IOException
- マークされた位置が無効となっている場合あるいはこのメソッドの操作をサポートしていない場合に throw します。markSupported()
,
mark(int)
public abstract void close() throws IOException
ストリームをクローズし、関連するリソースを全て開放します。 以後、該当するオブジェクトによるストリーム処理は一切行えません。
IOException
- 処理に伴い、入力関係で何らかの障害が発生した場合に throw します。
|
Unofficial "CLDC 1.0 + MIDP 1.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |