Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

java.io
クラス Reader

java.lang.Object
  上位を拡張 java.io.Reader
直系の既知のサブクラス:
InputStreamReader

public abstract class Reader
extends Object

文字をストリーム入力するための機能の枠組みを持った抽象クラスです。 サブクラスでは最低限 read(char[], int, int) メソッドと close() メソッドを実装する必要があります。

導入されたバージョン:
CLDC 1.0
関連項目:
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
 

フィールドの詳細

lock

protected Object lock

このクラスがストリーム処理を行う際に同期を取るために使用するオブジェクトを保持しています。 ストリーム処理で同期が必要な処理を行う場合にはこのオブジェクトに対して同期の要求を行います。 このクラスのサブクラスでも同期が必要な場合はこのオブジェクトに対して同期の要求を出すように記述しなければなりません。

ロックは以下のような記述で行います。

     synchronized(lock) {
         // ロックが必要な処理をここに記述する。
     }

コンストラクタの詳細

Reader

protected Reader()

自分自身をロック対象のオブジェクトに設定したオブジェクトを生成します。


Reader

protected Reader(Object lock)

渡されたオブジェクトを同期要求に使用するように設定したオブジェクトを生成します。

パラメータ:
lock - 同期に使用するオブジェクトを渡します。
メソッドの詳細

read

public int read()
         throws IOException

文字を1つ読み出します。 このメソッドは文字の読み出しが終了するか、例外が throw されるかあるいは終端に達するまでブロックします。

サブクラスが最適化された1文字読み出し処理をサポートできる場合はこのメソッドをオーバーライドして実装すべきです。

戻り値:
読み出した1文字を int 型の値(0x00000xffff)として返します。これは読み出した char 型の値を int 型でキャストした値を取得するのと等価です。
例外:
IOException - データの読み出し時に何らかの障害が発生した場合に throw します。
関連項目:
Writer.write(int)

read

public int read(char[] data)
         throws IOException

渡された char 型の配列へ文字列を読み出して格納します。 このメソッドは data.length が示す文字数の読み出しが完了するか、終端に達するかあるいは例外が throw されるまでブロックします。

このメソッドで例外が throw されるのは以下の場合です。

これらの例外が throw された場合でも、そこまでに読み込んだ文字は data に格納されます。

戻り値として実際に読み込んだ文字数を返します。ストリームが終端に達していて文字が読み出せなかった場合は -1 を返します。

Reader クラスにおけるこのメソッドは、read(data, 0, data.length) と記述するのと等価です。

サブクラスが最適化された文字列の読み出し処理をサポートできる場合はこのメソッドをオーバーライドして実装すべきです。

パラメータ:
data - 読み出した文字列を格納する char 型の配列を渡します。
戻り値:
読み出した文字数あるいは -1 を返します。
例外:
IOException - 文字の読み出し時に何らかの障害が発生した場合に throw します。
NullPointerException - datanull が渡された場合に throw します。
関連項目:
Writer.write(char[])

read

public abstract int read(char[] data,
                         int index,
                         int length)
                  throws IOException

ストリームから指定された数の文字を渡された char 配列の指定位置へ読み出します。 このメソッドは指定された数の文字の読み出しを完了するか、ストリームが終端に達するかあるいは例外が throw されるまでブロックします。

このメソッドで例外が throw されるのは以下の場合です。

これらの例外が throw された場合でも、そこまでに読み込んだ文字は data に格納されます。

戻り値として実際に読み込んだ文字数を返します。入力ストリームが終端に達していてデータが読み出せなかった場合は -1 を返します。

サブクラスではこのメソッドを必ずオーバーライドして実装しなければなりません。

パラメータ:
data - 読み出した文字列を書き込む char 配列を渡します。
index - 読み出した文字列を書き込み開始する char 配列の位置を渡します。
length - 読み出す文字数を渡します。
戻り値:
読み出した文字数あるいは -1 を返します。
例外:
IOException - 初回の文字読み出しがストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。
NullPointerException - datanull が渡された場合に throw します。
IndexOutOfBoundsException - index が負数あるいは index + lengthdata のサイズを超える場合に throw します。
関連項目:
Writer.write(char[], int, int)

skip

public long skip(long length)
          throws IOException

ストリームから指定された数の文字を読み飛ばします。 しかし、実際に読み飛ばすことのできる文字数がさまざまな要因(ストリームが終端に達するなど)によって指定された文字数に達しないこともあります。 戻り値には実際に読み飛ばした文字数を返します。

このメソッドは指定された数の文字を読み捨てるか例外が throw されるかあるいは終端に達するまでブロックします。

サブクラスでより効率的な処理が可能な場合はオーバーライドして処理を記述すべきです。

パラメータ:
length - 読み飛ばす文字数を渡します。
例外:
IOException - ストリームが終端に達した以外の要因で読み出しに失敗した場合に throw します。

ready

public boolean ready()
              throws IOException

ストリームから文字をブロックせずに読み出せるか否かを返します。 次回の read() メソッドの呼び出しがブロックしない場合には true を、ブロックする場合およびブロックするかどうか不明な場合は false を返します。 なお、false が返された次の read() メソッドの呼び出しが必ずブロックするわけではありません。

戻り値:
ブロックせずに読み出すことができる場合は true を、そうではない場合は false を返します。
例外:
IOException - 判定を行う際に何らかの障害が発生した場合に throw します。

markSupported

public boolean markSupported()

ストリームが mark(int) メソッドと reset() メソッドによる操作に対応しているか否かを返します。

Reader クラスにおけるこのメソッドは常に false を返します。

戻り値:
入力ストリームが mark(int) メソッドと reset() メソッドによる操作をサポートしている場合は true を、サポートしていない場合は false を返します。
関連項目:
mark(int), reset()

mark

public void mark(int limitlen)
          throws IOException

ストリームが指している現在位置をマークします。 reset() メソッドを呼び出すと入力ストリームが次回文字を取り出す位置がマークした位置へ戻ります。 これにより、ストリームの特定部分を繰り返し読むことができます。

パラメータで渡された limitlen は、位置をマークしてから読み出す可能性のある最大文字数を示しています。 この文字数を超えてストリームのデータを操作した場合、マーク位置が無効になることがあります。

このメソッドは、mark(int) メソッドによってマークした位置へ reset() メソッドによって読み出し位置を戻す機能をサポートしている場合は markSupported() メソッドは true を返し、mark(int) メソッドはパラメータによって渡された limitlen が示す文字数の操作が行われても reset() メソッドでマーク位置に戻れるように処理を実装する様に規定されています。

Reader クラスにおけるこのメソッドは何も処理を行いません。

パラメータ:
limitlen - 現在位置をマークしてから読み出される可能性のある最大バイト数を渡します。
例外:
IOException - ストリームがこのメソッドをサポートしない場合あるいは処理上何らかの障害が発生した場合に throw します。

reset

public void reset()
           throws IOException

ストリームが次回文字を読み出す位置を、最後に mark(int) メソッドによってマークした位置あるいは実装に固有な規定位置に戻します。

このメソッドは以下の様に実装することが規定されています。

Reader クラスにおけるこのメソッドは何も処理を行わずに常に IOException を throw します。

例外:
IOException - マークされた位置が無効となっている場合あるいはこのメソッドの操作をサポートしていない場合に throw します。
関連項目:
markSupported(), mark(int)

close

public abstract void close()
                    throws IOException

ストリームをクローズし、関連するリソースを全て開放します。 以後、該当するオブジェクトによるストリーム処理は一切行えません。

例外:
IOException - 処理に伴い、入力関係で何らかの障害が発生した場合に throw します。

Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

公式仕様書原文の著作権表記等(※):

Mobile Information Device Profile Specification ("Specification")
Version: 2.0
Status: FCS
Release: November 5, 2002

Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc.
All rights reserved.
※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。