/*
* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:模拟一下BufferedReader和LineNumberReader
* 作 者:薛广晨
* 完成日期:2012 年 11 月 04 日
* 版 本号:x1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述: 模拟一下BufferedReader
* 程序输出:
* 程序头部的注释结束
*/
import java.io.*;
class MyBufferedReader
{
private Reader r;
MyBufferedReader(Reader r)
{
this.r = r;
}
public String myReadLine() throws IOException
{
StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch = r.read()) != -1)
{
if(ch == '\r')
continue;
if(ch == '\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.length() != 0)
return sb.toString();
return null;
}
public void myClose() throws IOException
{
r.close();
}
}
class MyBufferedReaderTest
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("buf.txt");
MyBufferedReader myBuf = new MyBufferedReader(fr);
String line = null;
while((line = myBuf.myReadLine()) != null)
{
System.out.println(line);
}
myBuf.myClose();
}
}
import java.io.*;
class MyLineNumberReader extends MyBufferedReader
{
private int lineNumber;
MyLineNumberReader(Reader r)
{
super(r);
}
public void setLineNumber(int lineNumber)
{
this.lineNumber = lineNumber;
}
public int getLineNumber()
{
return this.lineNumber;
}
public String myReadLine() throws IOException
{
lineNumber++;
return super.myReadLine();
}
}
/*class MyLineNumberReader
{
private Reader r;
private int lineNumber;
MyLineNumberReader(Reader r)
{
this.r = r;
}
public void setLineNumber(int lineNumber)
{
this.lineNumber = lineNumber;
}
public int getLineNumber()
{
return this.lineNumber;
}
public String myReadLine() throws IOException
{
lineNumber++;
StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch = r.read()) != -1)
{
if(ch == '\r')
continue;
if(ch == '\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.length() != 0)
return sb.toString();
return null;
}
public void myClose() throws IOException
{
r.close();
}
}*/
class MyLineNumberReaderTest
{
public static void main(String[] args) throws IOException
{
FileReader fr = new FileReader("MyLineNumberReaderTest.java");
MyLineNumberReader mylnr = new MyLineNumberReader(fr);
String line = null;
mylnr.setLineNumber(100);
while((line = mylnr.myReadLine()) != null)
{
System.out.println(mylnr.getLineNumber()+"::"+line);
}
mylnr.myClose();
}
}
IO操作 模拟一下BufferedReader和LineNumberReader
最新推荐文章于 2022-01-16 14:50:18 发布