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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编译运行,都没有报错,就是命令行没有结果输出。

[code=java]import java.io.*;
class L
{
        public static void main(String args[]) throws IOException
        {
                FileReader fr=new FileReader("L.java");
                MyLineNumberReader mlnr=new MyLineNumberReader(fr);
        
               
                String line=null;
                while((line=mlnr.myReadLine())!=null)
                {
                        
                        System.out.println(mlnr.myGetLineNumber()+"     "+line);
                }
                mlnr.myClose();
                System.out.println("love");
        }
}
class MyLineNumberReader
{
        private int lineNumber=0;
        private FileReader fr;
        MyLineNumberReader(FileReader fr)
        {
           this.fr=fr;
        }
        public String myReadLine() throws IOException
        {
               
        lineNumber++;
                StringBuilder sb=new StringBuilder();
                int ch=0;
                while((ch=fr.read())!=-1)
                {
            if((ch=fr.read())=='\r')
                             continue;
                        if((ch=fr.read())=='\n')
                                return sb.toString();
                        else
                                sb.append((char)ch);
                }
                return null;
               
        }
        public int myGetLineNumber()
        {
                return lineNumber;
        }
        public void myClose() throws IOException
        {
                fr.close();
        }
}[/code]

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-9-4 12:20:59
沙发
FileReader fr=new FileReader("L.java");
if(!fr.exist) {
system.out.println("file is not exist");
}
看看你存在不,另外在36打个断点,那里好像有点问题。
lineNumber应该是static的
此电脑只提供上网.... 故无法测试
回复 使用道具 举报
黑马网友  发表于 2011-9-4 12:24:56
藤椅
应该是36行出错了,检测到'\r'之后又重新循环,文件每行结束都有一个'\r''n',你的程序contiue后就没再往后执行了。有个类叫bufferedReader,可以直接读取一行,感觉比较适合用在这里
回复 使用道具 举报
黑马网友  发表于 2011-9-4 13:02:43
板凳
相对路径错了,需要加上L.JAVA文件所在文件夹,也就是“(文件所在文件夹名)/L.java”就可以了,不如我的L.java文件放在src文件夹中,上面语句改为FileReader fr=new FileReader("src/L.java");就ok了

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马