A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨朔 中级黑马   /  2012-6-7 18:22  /  1789 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
这里面的append方法应该只是StringBuilder的方法,在毕老师的视频里看到的,就是提示有错
*/
import java.io.*;
class LineNumber1{
private Reader r;
private int lineNumber;
LineNumber1(Reader r){
  this.r=r;
}
public String myReadLine(){
  
  lineNumber++;
  StringBuilder sb=new StringBuilder();
  int ch=0;
  while((ch=r.read())!=-1){
   if(ch=='\r')
    continue;
   if(ch=='\n')
    return sb.toString();
   else
    return sb.append((char)ch);
  }
  if(sb.length()!=0)
   return sb.toString();
  return null;
}
public void setLineNumber(int lineNumber){
  this.lineNumber=lineNumber;
}
public int getLineNumber(int lineNumber){
  return lineNumber;
}
public void myClose() throws IOException{
  r.close();
}
}
public class LineNumber {



public static void main(String[] args) throws IOException {
  
  FileReader fr=new FileReader("E:\\工作区\\eclipse\\JavaByHand\\src\\LineNumber.java");
  LineNumber1 ln=new LineNumber1(fr);
  String line=null;
  while((line=ln.myReadLine())!=null){
   System.out.println(line);
  }
   
  ln.myClose();
}
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 鼓励下,加油~

查看全部评分

2 个回复

倒序浏览
你的append()没有问题。关键是return sb.append();你的函数返回类型貌似是String类型的;append()返回不是String类型
而且你的目的是加字符,也不是返回吧!应该去掉return吧?

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. return sb.append((char)ch).toString();
复制代码
你的这个返回类型不对  你要的返回的是String类型  你不加toString() 他返回的是StringBuilder类型的
加上就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马