JavaA2Z

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

CharArrayReader

日本語 文字配列読者
英語 char array reader
ふりがな きゃらあれいりーだー
フリガナ キャラアレイリーダー

解説

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

参考サイト


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

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

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

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

            while( true )
            {
                // 1バイト取得します。
                int i = charArrayReader.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( charArrayReader != null )
            {
                charArrayReader.close();
            }
        }
    }
}
// Sample.java
import java.io.CharArrayReader;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        CharArrayReader charArrayReader = null;
        try
        {
            // 対象とする文字列。
            char[] chars = new char[]{ 'あ', 'い', 'う', 'え', 'お' };
            
            // CharArrayReaderクラスを作ります。
            charArrayReader = new CharArrayReader( chars );

            while( true )
            {
                // 1バイト取得します。
                int i = charArrayReader.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( charArrayReader != null )
            {
                charArrayReader.close();
            }
        }
    }
}

この単語を含むページ

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

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

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

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