黑马程序员技术交流社区

标题: IO代理readline问题 [打印本页]

作者: 黑马伍仪华    时间: 2012-3-8 23:36
标题: IO代理readline问题
package IO;

import java.io.*;

class MybufferedReader1 {

        /**
         * @param args
         */
        private static FileReader r;

        MybufferedReader1(FileReader r) {
                this.r = r;
        }

        public  String myreadline()throws Exception {
               
                        int ch = 0;
                        StringBuilder sb = new StringBuilder();
                        while ((ch = r.read()) != -1) {//读取文件,返回给ch,当读完等于-1,循环停止
               if (ch=='\r') {
                       continue;//当读到\r表示换行,这个数据不进入内存
               }
                               
                        if (ch=='\n') {
                                return sb.toString();//当读到\n,就把这行的数据交给字符串
                        }else
                                sb.append((char) ch);

               }
                return null;}
        public  class MybufferedReader{
        public static void main(String[] args) {
                FileReader fr=null;
                BufferedReader br=null;
                try {
                        fr=new FileReader("c:\\demo.txt");
                        br=new BufferedReader(fr);
                        String str=null;
                        while(br.myreadline()!=null){}
                } catch (Exception e) {
                        System.out.println("读取异常");
                }

       

}
为什么显示红线呢
作者: silence    时间: 2012-3-8 23:45
我不知道你的意图是什么  我改了一下代码 没有 错误 你看看对吧


package IO;

import java.io.BufferedReader;
import java.io.FileReader;

class MybufferedReader1 {

        /**
         * @param args
         */
        private static FileReader r;

        MybufferedReader1(FileReader r) {
                this.r = r;
        }

        public  String myreadline()throws Exception {
               
                        int ch = 0;
                        StringBuilder sb = new StringBuilder();
                        while ((ch = r.read()) != -1) {//读取文件,返回给ch,当读完等于-1,循环停止
               if (ch=='\r') {
                       continue;//当读到\r表示换行,这个数据不进入内存
               }
                                
                        if (ch=='\n') {
                                return sb.toString();//当读到\n,就把这行的数据交给字符串
                        }else
                                sb.append((char) ch);

               }
                return null;}

        public static void main(String[] args) {
                FileReader fr=null;
                BufferedReader br=null;
                MybufferedReader1 reader = new MybufferedReader1(fr);
                try {
                        fr=new FileReader("c:\\demo.txt");
                        br=new BufferedReader(fr);
                        String str=null;
                        while(reader.myreadline()!=null){}
                } catch (Exception e) {
                        System.out.println("读取异常");
                }
        }
        

}
作者: 泮和顺    时间: 2012-3-9 07:04
public  class MybufferedReader 中间多了这个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2