跟踪行号的缓冲字符输入流。该类定义了 setLineNumber(int) 和 getLineNumber() 方法,分别用于设置和获取当前行号。
构造函数:
方法 :
Syntax :public int getLineNumber()
Returns:
The current line number
Syntax :public void mark(int readAheadLimit)
throws IOException
Parameters:
readAheadLimit - Limit on the number of characters that may be read
while still preserving the mark. After reading this many characters,
attempting to reset the stream may fail.
Throws:
IOException
Syntax :public int read()
throws IOException
Returns:
The character read, or -1 if the end of the stream has been reached
Throws:
IOException
Syntax :public int read(char[] cbuf,
int off,
int len)
throws IOException
Parameters:
cbuf - Destination buffer
off - Offset at which to start storing characters
len - Maximum number of characters to read
Returns:
The number of bytes read, or -1 if the end of the stream has already been reached
Throws:
IOException
Syntax :public String readLine()
throws IOException
Returns:
A String containing the contents of the line, not including any line
termination characters, or null if the end of the stream has been reached
Throws:
IOException
Syntax :public void reset()
throws IOException
Throws:
IOException
Syntax :public void setLineNumber(int lineNumber)
Parameters:
lineNumber - An int specifying the line number
Syntax :public long skip(long n)
throws IOException
Parameters:
n - The number of characters to skip
Returns:
The number of characters actually skipped
Throws:
IOException
IllegalArgumentException
程序 :
//Java program demonstrating LineNumberReader methods
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
class LineNumberReaderDemo
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("file.txt");
LineNumberReader lnr = new LineNumberReader(fr);
char c[] = new char[20];
//illustrating setLineNumber()
lnr.setLineNumber(0);
//illustrating set
System.out.println(lnr.getLineNumber());
//illustrating markSupported() method
if(lnr.markSupported())
{
System.out.println("mark() method is supported");
//illustrating mark method
lnr.mark(100);
}
/*File Contents
* This is first line
this is second line
This is third line
*/
//skipping 19 characters
lnr.skip(19);
//illustrating ready() method
if(lnr.ready())
{
//illustrating readLine() method
System.out.println(lnr.readLine());
//illustrating read(char c[],int off,int len)
www.gsm-guard.net(c);
for (int i = 0; i <20 ; i++)
{
System.out.print(c[i]);
}
//illustrating reset() method
lnr.reset();
for (int i = 0; i <18 ; i++)
{
//illustrating read() method
System.out.print((char)www.gsm-guard.net());
}
int ch;
//illustrating read() method
System.out.println(lnr.readLine());
while((ch = www.gsm-guard.net())==1)
System.out.print((char)ch);
}
//close the stream
lnr.close();
}
}
输出 :
0
mark() method is supported
this is second line
This is third line
This is first line