黑马程序员技术交流社区
标题:
IO LineNumberReader
[打印本页]
作者:
fmi110
时间:
2015-8-6 10:58
标题:
IO LineNumberReader
IO
import java.io.*;
class MyBufferedReader
{
private FileReader r = null;
MyBufferedReader(FileReader r){
this.r = r;
}
public String myReadLine() throws IOException
{
StringBuilder str = new StringBuilder();
int ch = 0;
while((ch=r.read())!=-1){
// System.out.println("Hello World!");
if(ch=='\r')
continue;
if(ch=='\n')
return str.toString();
else
str.append((char)ch);
}
//文件不一定都是以行分隔符结束,所以需要判断
if(str.length()!=0)
return str.toString();
return null;
}
public void close() throws IOException
{
r.close();
}
}
class MyLineNumberReader extends MyBufferedReader
{
private int lineNumber;
MyLineNumberReader(Reader r){
super(r);
}
public String myReadLine() throws IOException
{
lineNumber++;
return super.myReadLine();
}
public void setLineNumber(int num){
this.lineNumber = num;
}
public int getLineNumber(){
return lineNumber;
}
public void close() throws IOException
{
r.close();
}
}
/* //重写readline
class MyLineNumberReader
{
private Reader r;
private int lineNumber;
MyLineNumberReader(Reader r){
this.r = r;
}
public String myReadLine() throws IOException
{
// System.out.println("Hello World!");
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 setLineNumber(int num){
this.lineNumber = num;
}
public int getLineNumber(){
return lineNumber;
}
public void close() throws IOException
{
r.close();
}
}
*/
class MyLineNumberReaderDemo
{
public static void main(String[] args) throws Exception
{
MyLineNumberReader mylr = null;
try
{
FileReader r = new FileReader("IO.java");
mylr = new MyLineNumberReader(r);
String str = null;
mylr.setLineNumber(100);
while((str=mylr.myReadLine())!=null){
System.out.println(mylr.getLineNumber()+": "+str);
}
}
catch (IOException e)
{
throw new RuntimeException();
}
finally
{
if(mylr!=null)
mylr.close();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2