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

来源:互联网 发布:2017年淘宝新规则 编辑:程序博客网 时间:2024/05/22 00:22

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



0 0
原创粉丝点击