您的位置:首页 > 职场人生

黑马程序员---自定义一个带行号的缓冲区对象

2015-05-28 22:21 337 查看
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

刚开始,我使用视频中老师教的if语句判断的方法。

先自定义一个缓冲类,在构造方法中传Read类型对象

然后写一个mySetLineNumber实现一次读一行的功能;

代码如下:

class MyLineNumberReader
{
private Reader bufr;
private int lineNumber = 0;
MyLineNumberReader(Reader bufr)
{

this.bufr = bufr;
}

public void mySetLineNumber(int lineNumber)
{
this.lineNumber = lineNumber;
}
public int myGetLineNumber()
{
return lineNumber;
}
public String myReadLine()throws IOException
{
lineNumber++;
int ch = 0;
StringBuilder sb = new StringBuilder();
while ((ch=bufr.read())!=-1)
{
if(ch=='\r')
{
continue;
}
if(ch=='\n')
{
return sb.toString();
}
sb.append((char)ch);
}
if(sb.length()!=0)
{
return sb.toString();
}
return null;

}
public void myClose()throws IOException
{
bufr.close();
}
}

在写该代码过程中,发现判断行末尾是否是换行的语句中,觉得应该可以使用switch来实现

所以我把这段代码修改使用switch来实现

while ((ch=bufr.read())!=-1)
{
switch (ch)
{
case '\r':
continue;
case '\n':
return sb.toString();
default :
sb.append((char)ch);
break;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: