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