JavaA2Z

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

StringReader

日本語 文字列読者
英語 string reader
ふりがな すとりんぐりーだー
フリガナ ストリングリーダー

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.io.StringReader。
ストリームクラスReaderクラスサブクラスであり、文字入力ストリームクラスである。
文字入力ストリームクラスの中では「入力元」に位置する。
対になる出力側のクラスStringWriterクラスである。
 
Stringクラスを入力元とするクラス
通常、文字入力ストリームファイルソケットを入力元とするが、StringReaderクラスStringクラス、つまりメモリを入力元とする。
ファイルソケットは対象が存在しないとアクセスできないため、その代わりとして使用する。また、文字列等のメモリ上のデータを対象とする場合にも使用する。
 
StringReaderクラスコンストラクタに入力元のStringを渡すことで、その中に格納された文字列が入力元となる。「入力元」、つまり「データ側の末端」であるため、Readerクラス引数に持つコンストラクタはない。
StringReaderクラスのread()メソッドを用いて入力元の文字列から各charデータを取得する。
引数を持たないread()メソッドintを返す。戻り値として返されるのはchar、つまり0x00000000~0x0000FFFFの範囲の値か、もしくは-1、つまり0xFFFFFFFFが返される。通常はcharの範囲のためcharキャストすることで該当する文字を取得することができる。文字入力ストリームの終端に達したときのみ-1を返すため、これを「最後まで読み込んだ印」とする。
処理終了後はclose()メソッドを呼び終了処理をう。

参考サイト


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

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

// Sample.java
import java.io.StringReader;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        StringReader stringReader = null;
        try
        {
            // 対象とする文字列。
            String source = "あいうえお";
            
            // StringReaderクラスを作ります。
            stringReader = new StringReader( source );

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

                // 出力します。
                System.out.println( (char)i );
            }
            // あ
            // い
            // う
            // え
            // お

            // このように、一文字ずつ取得することができます。
            // int型で返されるのは、-1が返される可能性があるためです。
            // -1でない場合には、必ずchar型の範囲の値が返され、
            // char型にキャストすることができます。
        }
        catch( IOException e )
        {
            // 読み込みに失敗した際に、write()メソッドが
            // IOException例外を投げます。
            e.printStackTrace();
        }
        finally
        {
            // 最後にclose()メソッドを呼んで後処理をします。
            // また、これは必ず行うため、finally内で行います。
            if( stringReader != null )
            {
                stringReader.close();
            }
        }
    }
}
// Sample.java
import java.io.StringReader;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        StringReader stringReader = null;
        try
        {
            // 対象とする文字列。
            String source = "あいうえお";
            
            // StringReaderクラスを作ります。
            stringReader = new StringReader( source );

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

                // 出力します。
                System.out.println( (char)i );
            }
            // あ
            // い
            // う
            // え
            // お

            // このように、一文字ずつ取得することができます。
            // int型で返されるのは、-1が返される可能性があるためです。
            // -1でない場合には、必ずchar型の範囲の値が返され、
            // char型にキャストすることができます。
        }
        catch( IOException e )
        {
            // 読み込みに失敗した際に、write()メソッドが
            // IOException例外を投げます。
            e.printStackTrace();
        }
        finally
        {
            // 最後にclose()メソッドを呼んで後処理をします。
            // また、これは必ず行うため、finally内で行います。
            if( stringReader != null )
            {
                stringReader.close();
            }
        }
    }
}

この単語を含むページ

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

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

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