本帖最后由 zhukaiquan1987 于 2011-01-08 08:52:19 编辑

解决方案 »

  1.   

    1.public int read()throws IOException 返回的是用整数表示的一个字符吧;
    2.FileReader一般用来读取字符文件的;如果你要读字节的话可以用别的流。
    3.int c里面就放着当前读到的字符,怎么是下一个数据字节呢。
      

  2.   

    看API文档的解释:public int read()
             throws IOException 读取单个字符。 
    覆盖:类 Reader 中的 read 返回:读取的字符,如果已到达流的末尾,则返回 -1 抛出: IOException - 如果发生 I/O 错误数据存放在当前c变量当中;为什么用System.out.print((char)c);就能把读到的数据输出来?因为数据存放在当前变量当中,是将字符转变为int型的,所以用(char)c可以打印出来;int c 的内容是经过一次while之后就会改变的;
      

  3.   

    是将字符转变为int型的,所以用(char)c可以打印出来;就是这个不太明白,为什么要转成int型的
      

  4.   

    我就是不明白c = fr.read())!=-1当中的c为什么要是int 型的?而不能是byte型
      

  5.   

    这个好像是容易判断,当返回-1的时候就知道到尾了,这个都是跟设计Java程序语言的人有关,跟规范之类的都有关;
    总之用的时候记住就行了;
      

  6.   

    1.因为char类型的取值范围为0~65536,用int型完全可以存的下;而byte类型的取值范围只有-128~127,用byte存char的话会溢出的。
    2.char类型没负数,所以可以用-1来表示读到了文件尾。如果你是Java的设计人员,你可以改成-2,-100........