------<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;
}