JavaA2Z

KAB-studio > プログラミング > JavaA2Z > SequenceInputStreamとは

SequenceInputStream

日本語 連続入力流れ
英語 sequence input stream
ふりがな しーけんすいんぷっとすとりーむ、しーくぇんすいんぷっとすとりーむ
フリガナ シーケンスインプットストリーム、シークェンスインプットストリーム

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.io.SequenceInputStream。
ストリームクラスInputStreamクラスサブクラスであり、バイト入力ストリームクラスである。
バイト入力ストリームクラスの中では「中継ぎ」に位置する。
対になる出力側のクラスは存在しない。
 
複数のバイト入力ストリームを接続するクラス
InputStreamクラスサブクラスを「連結」して、ひとつのバイト入力ストリームと見なして取得する場合に使用する。
 
SequenceInputStreamクラスコンストラクタには、複数の「InputStreamクラスサブクラス」をVectorクラスに追加し、elements()メソッドで取得したEnumerationインターフェイスを渡すことで、その複数の「InputStreamクラスサブクラス」をひとつのバイト入力ストリームと見なして取得することができる。
SequenceInputStreamクラスのread()メソッドを用いて引数に渡した複数のバイト入力ストリームから、その区別なしに取得する。取得する順番は、Vector内に格納した順番となる。
処理終了後はclose()メソッドを用いて閉じる。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.util.Vector;
import java.io.ByteArrayInputStream;
import java.io.SequenceInputStream;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        ByteArrayInputStream byteArrayInputStream1 = null;
        ByteArrayInputStream byteArrayInputStream2 = null;
        SequenceInputStream sequenceInputStream = null;
        try
        {
            // 処理対象のバイト配列1。
            byte[] bytes1 = new byte[]{ 1, 2, 3 };
            // そのバイト配列を読み込み対象とする
            // ByteArrayInputStreamクラス。
            byteArrayInputStream1 = new ByteArrayInputStream( bytes1 );

            // 同じくもうひとつ。
            byte[] bytes2 = new byte[]{ 4, 5, 6 };
            byteArrayInputStream2 = new ByteArrayInputStream( bytes2 );

            // このふたつを格納するVectorクラスを用意します。
            Vector vector = new Vector();
            vector.add( byteArrayInputStream1 );
            vector.add( byteArrayInputStream2 );

            // この2つを対象とするSequenceInputStreamクラスを用意します。
            sequenceInputStream = new SequenceInputStream( vector.elements() );

            while( true )
            {
                // 1バイト取得します。
                int i = sequenceInputStream.read();
                if( i == -1 )
                {
                    // -1が返されてきたら終わりです。
                    break;
                }

                // 出力します。
                System.out.println( "0x" + Integer.toHexString( i ) + " ( " + i + " )" );
            }
            // 0x1 ( 1 )
            // 0x2 ( 2 )
            // 0x3 ( 3 )
            // 0x4 ( 4 )
            // 0x5 ( 5 )
            // 0x6 ( 6 )

            // このように、2つのストリームから立て続けに
            // 取得することができます。
        }
        catch( IOException e )
        {
            // 読み込みに失敗した際に、read()メソッドが
            // IOException例外を投げます。
            e.printStackTrace();
        }
        finally
        {
            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( sequenceInputStream != null )
                {
                    sequenceInputStream.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( byteArrayInputStream2 != null )
                {
                    byteArrayInputStream2.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( byteArrayInputStream1 != null )
                {
                    byteArrayInputStream1.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }
        }
    }
}
// Sample.java
import java.util.Vector;
import java.io.ByteArrayInputStream;
import java.io.SequenceInputStream;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        ByteArrayInputStream byteArrayInputStream1 = null;
        ByteArrayInputStream byteArrayInputStream2 = null;
        SequenceInputStream sequenceInputStream = null;
        try
        {
            // 処理対象のバイト配列1。
            byte[] bytes1 = new byte[]{ 1, 2, 3 };
            // そのバイト配列を読み込み対象とする
            // ByteArrayInputStreamクラス。
            byteArrayInputStream1 = new ByteArrayInputStream( bytes1 );

            // 同じくもうひとつ。
            byte[] bytes2 = new byte[]{ 4, 5, 6 };
            byteArrayInputStream2 = new ByteArrayInputStream( bytes2 );

            // このふたつを格納するVectorクラスを用意します。
            Vector vector = new Vector();
            vector.add( byteArrayInputStream1 );
            vector.add( byteArrayInputStream2 );

            // この2つを対象とするSequenceInputStreamクラスを用意します。
            sequenceInputStream = new SequenceInputStream( vector.elements() );

            while( true )
            {
                // 1バイト取得します。
                int i = sequenceInputStream.read();
                if( i == -1 )
                {
                    // -1が返されてきたら終わりです。
                    break;
                }

                // 出力します。
                System.out.println( "0x" + Integer.toHexString( i ) + " ( " + i + " )" );
            }
            // 0x1 ( 1 )
            // 0x2 ( 2 )
            // 0x3 ( 3 )
            // 0x4 ( 4 )
            // 0x5 ( 5 )
            // 0x6 ( 6 )

            // このように、2つのストリームから立て続けに
            // 取得することができます。
        }
        catch( IOException e )
        {
			// 読み込みに失敗した際に、read()メソッドが
			// IOException例外を投げます。
            e.printStackTrace();
        }
        finally
        {
            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( sequenceInputStream != null )
                {
                    sequenceInputStream.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( byteArrayInputStream2 != null )
                {
                    byteArrayInputStream2.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( byteArrayInputStream1 != null )
                {
                    byteArrayInputStream1.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/11/07
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。