分析のInputStream
/ **
*この抽象クラスは、表現するすべてのクラスのスーパークラスであります
*バイトの入力ストリーム。
*
サブクラスを定義する必要があります* <P>アプリケーションの<code>のInputStream </ code>の
*必ず入力の次のバイトを返すメソッドを提供しなければなりません。
*
* @Authorアーサー・バン・ホフ
* @see java.io.BufferedInputStreamの
* @see java.io.ByteArrayInputStream
* @seeにjava.io.DataInputStream
* @see java.io.FilterInputStream
* @see java.io.InputStreamを#読みます()
* @seeにjava.io.OutputStream
* @see java.io.PushbackInputStream
* @since JDK1.0
* /
パブリック抽象クラスInputStreamが{閉鎖可能を実装します
// MAX_SKIP_BUFFER_SIZEはの最大バッファサイズを決定するために使用されます
//スキップするときに使用。
プライベート静的最終int型のMAX_SKIP_BUFFER_SIZE = 2048;
//抽象メソッド呼ばサブクラスから読み取られたバイトの入力ストリームを実装します
パブリック抽象int型の読み取り()はIOExceptionがスローされます。
//バイトbに入力ストリームから読み取られたバイトの出力ストリーム[]
公共int型リード(バイトB [])IOExceptionが{スロー
リターン読み出す(B、0、てb.length)。
}
//バイトbに入力ストリームから読み取られたバイトの出力ストリーム[]
公共INTリード(バイトB []、オフINT、INT LEN)は、IOExceptionが{スロー
直接チェック配列の境界は、ゼロの長さを返す場合//空の判定データはゼロであります
IF(Bの==ヌル){
新しいNullPointerExceptionがスロー();
}そうでなければ(<0 || LEN <0 || LEN>てb.lengthオフ - オフ)であれば{
新しいはIndexOutOfBoundsExceptionを投げます();
}そうであれば(LEN == 0){
0を返します。
}
//バイトの割り当てを読みます
INT C =リード()。
IF(C == -1){
-1を返します。
}
B =(バイト)C [OFF]。
int型I = 1;
{試します
用(; iはLEN <; iは++){
C =リード()。
IF(C == -1){
ブレーク;
}
B =(バイト)C [iが+オフ]。
}
}キャッチ(IOExceptionをeeで){
}
私は返します。
}
//指定されたバイトをスキップし、実際に指定されたバイトの廃棄を読んでバイトが読み取ります
公共長いスキップ(長n)はIOExceptionが{スロー
長い残り= N。
あなたNR;
IF(N <= 0){
0を返します。
}
INTサイズ=(INT)Math.min(残りMAX_SKIP_BUFFER_SIZE)。
バイト[] skipBuffer =新しいバイト[サイズ];
(残り> 0)しながら{
NR =(skipBuffer、0、(INT)Math.min(サイズ、残り))を読み取ります。
IF(NR <0){
ブレーク;
}
残り - = NR。
}
戻りN - 残り。
}
//入力ストリームがブロックされていない場合、1つは、データ長を読み取ることができ
利用可能なパブリックINT()はIOExceptionが{スロー
0を返します。
}
//入力ストリームを閉じます
公共ボイド近い()のIOException {}はスロー
//入力ストリームの現在位置をマーク
公共同期ボイドマーク(INT readlimit){}
//現在位置マークの位置の入力ストリームをリセット
公共同期ボイドリセット()はIOExceptionがスロー{
新しいIOExceptionが(「マーク/リセットサポートされていません」)投げます。
}
//位置マークをサポートするかどうか
パブリックブールmarkSupported(){
falseを返します。
}
}
分析のOutputStream
/ **
*この抽象クラスは、表現するすべてのクラスのスーパークラスであります
*バイトの出力ストリーム。出力ストリームは、出力バイトを受け付け
*といくつかのシンクに送信します。
* <P>
のサブクラスを定義する必要があります*アプリケーション
* <コード>のOutputStream </ code>は常に最低方法を提供する必要があります
*出力の1つのバイトを書き込みます。
*
* @Authorアーサー・バン・ホフ
* @see java.io.BufferedOutputStream
* @see java.io.ByteArrayOutputStreamを
* @see java.io.DataOutputStreamのメソッド
* @see java.io.FilterOutputStream
* @see java.io.InputStreamを
* @seeにjava.io.OutputStream#書き込み(INT)
* @since JDK1.0
* /
パブリック抽象クラスのOutputStreamは閉鎖可能、流せるを{実装します
//出力ストリームにバイトを書きます
パブリック抽象ボイド書き込み(int型b)は、IOExceptionがスローされます。
/ **
* <コード>のb.length </コード>が指定されたバイト配列からのバイト書き込み
*この出力ストリームに。<コード>ライト(B)</ code>のための一般的な契約
*それはコールとまったく同じ効果を持つべきであるということです
* <コード>ライト(B、0、てb.length)</コード>。
*
*データB @param。
* @exception IOException I / Oエラーが発生した場合。
* @seeにjava.io.OutputStream#書き込み(バイト[]、int型、int型)
* /
//出力ストリームは、指定されたバイト配列に書き込みます
公共ボイドライト(バイトB [])は、{IOExceptionがスロー
ライト(B、0、てb.length)。
}
//出力ストリームは、指定されたバイト配列に書き込みます
公共ボイドライト(バイトB []、オフINT、INT LEN)は、IOExceptionが{スロー
IF(Bの==ヌル){
新しいNullPointerExceptionがスロー();
}そうであれば(()のb.length <0)||(オフ>オフ||(LEN <0)||
((+ LENオフ)>てb.length)|| ((+ LENオフ)<0)){
新しいはIndexOutOfBoundsExceptionを投げます();
}そうであれば(LEN == 0){
返します。
}
以下のために(INT i = 0; iがLEN <; iは++){
(B [OFF + i])と書きます。
}
}
//すぐにライトバッファのデータをフラッシュします
ボイドフラッシュ()はIOExceptionが{スロー
}
//出力ストリームを閉じます
公共ボイド近い()はIOExceptionがスロー{
}
}