黑马程序员技术交流社区

标题: 自定义缓冲区的问题 [打印本页]

作者: java—family    时间: 2014-8-11 17:51
标题: 自定义缓冲区的问题
        public myBufferedReader(FileReader r) {
                super();
                this.r = r;
        }
        //定义一个内存数组,同时定义两个两个变量,一个记录内存元素个数,一个记录内存角标,方便读和取。
        char[] buf = new char[1024];
        int count =0;
        int pos=0;
        public int myRead(FileReader r) throws IOException{----------1
                //如果等于0就开始读
                if(count==0){
                         count=r.read(buf);
                         pos=0;
                }else if(count<0){
                        return -1;
                }
                char cha=buf[pos];------------2
                     count--;
                     pos++;
                     return cha;------------------3
        }数字2的地方读的是char类型。数字3 返回的也是char类型。在定以方法上时为什么是int类型。


作者: wisely    时间: 2014-8-11 18:05
可以是char

还有,myRead方法不用传入参数吧
作者: java—family    时间: 2014-8-11 18:11
wisely 发表于 2014-8-11 18:05
可以是char

还有,myRead方法不用传入参数吧

嗯 不加,但 为什么那里氏int 想不明白
作者: wisely    时间: 2014-8-11 18:19
java—family 发表于 2014-8-11 18:11
嗯 不加,但 为什么那里氏int 想不明白

这确实是个问题,read读入的返回值是int,write写入字符的时候也是int。没看过源码,搞不清啊。

召唤大神!!
作者: Joemi    时间: 2014-8-11 18:28
int可以在末尾以-1表示结束
作者: java—family    时间: 2014-8-11 18:54
Joemi 发表于 2014-8-11 18:28
int可以在末尾以-1表示结束

那么char和int可以装换(这里面会不会有强制装换)




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