JavaA2Z

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

LineNumberReader

日本語 行番号読者
英語 line number reader
ふりがな らいんなんばーりーだー
フリガナ ラインナンバーリーダー

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.io.LineNumberReader。
ストリームクラスBufferedReaderクラスサブクラスであり、文字入力ストリームクラスである。
文字入力ストリームクラスの中では「中継ぎ」に位置する。
対になる出力側のクラスは存在しない。
 
BufferedReaderクラスサブクラス
BufferedReaderクラスの「一ずつ取得する」という機能を受け継ぎ、取得するごとに「番号」を取得することができる。
番号は0から始まり、read()メソッド改行文字を取得するか、readLine()メソッドを呼ぶことで1ずつ増える。
番号はgetLineNumber()メソッドで取得する。また、「現在の番号」はsetLineNumber()メソッドで任意の番号をセットすることができる。
「指定したへ移動する」という機能はなく、単にカウンターを取得するだけなので、あまり使い道はない。
 
LineNumberReaderクラスコンストラクタに他のReaderクラスサブクラスを渡すことで、そのクラスを「入力元」として取得する。
LineNumberReaderクラスのread()メソッドを用いて入力元の文字列ストリームから各文字を取得する。その際、コンストラクタに渡された「入力元」のread()メソッド呼び出し、数文字を取得してフィールドに格納する。それ以降のread()メソッドではそのフィールドから返す。
また、readLine()メソッドを呼ぶことで一ずつ取得することができる。その際、対象の文字ストリームが使用している改行文字に関わらず、適切に一ずつ取得することができる。
read()メソッド改行文字を取得するか、readLine()メソッドを呼ぶ度に内部の「番号」が1ずつ増える。番号は最初は0であり、getLineNumber()メソッドで取得する。「現在の番号」はsetLineNumber()メソッドでセットすることができる。
処理終了後はclose()メソッドを呼び終了処理をう。

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

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

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

public class Sample
{
    public static void main( String[] args )
    {
        StringReader stringReader = null;
        LineNumberReader lineNumberReader = null;
        try
        {
            // 対象とする文字列。
            String source 
                = "あいうえお\n"
                + "かきくけこ\n"
                + "さしすせそ\n"
                + "たちつてと";

            // StringReaderクラスを作ります。
            stringReader = new StringReader( source );

            // このクラスを対象とするLineNumberReaderクラスを用意します。
            lineNumberReader = new LineNumberReader( stringReader );

            int i = 0;
            String string = null;
            // 
            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 0 : あいうえお

            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 1 : かきくけこ

            // 行番号を100にします。
            lineNumberReader.setLineNumber( 100 );

            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 100 : さしすせそ

            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 101 : たちつてと

            // このように、「行番号」を格納するフィールドを持っていて、
            // 一行ずつ取得する度に1ずつ増えていきます。
            // また、setLineNumber()メソッドで、現在の行番号を
            // セットし直すことができます。
        }
        catch( IOException e )
        {
            // 読み込みに失敗した際に、read()メソッドが
            // IOException例外を投げます。
            e.printStackTrace();
        }
        finally
        {
            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( lineNumberReader != null )
                {
                    lineNumberReader.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            if( stringReader != null )
            {
                stringReader.close();
            }
        }
    }
}
// Sample.java
import java.io.StringReader;
import java.io.LineNumberReader;
import java.io.IOException;

public class Sample
{
    public static void main( String[] args )
    {
        StringReader stringReader = null;
        LineNumberReader lineNumberReader = null;
        try
        {
            // 対象とする文字列。
            String source 
                = "あいうえお\n"
                + "かきくけこ\n"
                + "さしすせそ\n"
                + "たちつてと";

            // StringReaderクラスを作ります。
            stringReader = new StringReader( source );

            // このクラスを対象とするLineNumberReaderクラスを用意します。
            lineNumberReader = new LineNumberReader( stringReader );

            int i = 0;
            String string = null;
            // 
            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 0 : あいうえお

            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 1 : かきくけこ

            // 行番号を100にします。
            lineNumberReader.setLineNumber( 100 );

            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 100 : さしすせそ

            i = lineNumberReader.getLineNumber();
            string = lineNumberReader.readLine();
            System.out.println( i + " : " + string );
            // 101 : たちつてと

            // このように、「行番号」を格納するフィールドを持っていて、
            // 一行ずつ取得する度に1ずつ増えていきます。
            // また、setLineNumber()メソッドで、現在の行番号を
            // セットし直すことができます。
        }
        catch( IOException e )
        {
            // 読み込みに失敗した際に、read()メソッドが
            // IOException例外を投げます。
            e.printStackTrace();
        }
        finally
        {
            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            try
            {
                if( lineNumberReader != null )
                {
                    lineNumberReader.close();
                }
            }
            catch( IOException e )
            {
                // close()メソッドはIOExceptionがthrows指定されているので
                // 一応受け取ります。
                e.printStackTrace();
            }

            // 処理が終わったら、最後にclose()メソッドを呼んで
            // 後処理をします。また、これは必ず行うため、
            // finally内で行います。
            if( stringReader != null )
            {
                stringReader.close();
            }
        }
    }
}

この単語を含むページ

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

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

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

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