黑马程序员技术交流社区

标题: 提问啊 [打印本页]

作者: 戎石锁    时间: 2012-8-16 20:13
标题: 提问啊
class Demo
{

        public static void main(String[] args) throws IOException
        {
                FileReader fr=new FileReader("demo.txt");
                char[] arr=new char[1024];
                int num=0;
                while((num=fr.read(arr))!=-1)
                {
                        System.out.println(new String(arr,0,num));
                }
                fr.close();
        }
}

这里面的0 和null 是什么意思。??
作者: 周兴华    时间: 2012-8-16 20:43
为什么要定义num=0呢?首先你要查找API中java.io.Read类的read方法,说明如下:
readpublic int read(char[] cbuf)         throws IOException将字符读入数组。在某个输入可用、发生 I/O 错误或者已到达流的末尾前,此方法一直阻塞。参数:
cbuf - 目标缓冲区返回:读取的字符数,如果已到达流的末尾,则返回 -1抛出:IOException - 如果发生 I/O 错误

注意:红色字体的部分是关键,read方法返回的是读取的字符数,如果已到达流的末尾则返回-1,所以在while((num=fr.read(arr))!=-1)中会以此来判定是否读到流的末尾。




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