本帖最后由 Jayycr 于 2011-12-11 20:27:13 编辑

解决方案 »

  1.   


    FileInputStream类
    public int read(byte[] b,
                    int off,
                    int len)
             throws IOException从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。如果 len 不为 0,则在输入可用之前,该方法将阻塞;否则,不读取任何字节并返回 0。 覆盖:
    类 InputStream 中的 read
    参数:
    b - 存储读取数据的缓冲区。
    off - 目标数组 b 中的起始偏移量。
    len - 读取的最大字节数。 
    返回:
    读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。 
    抛出: 
    NullPointerException - 如果 b 为 null。 
    IndexOutOfBoundsException - 如果 off 为负、len 为负,或者 len 大于 b.length - off 
    IOException - 如果发生 I/O 错误。
      

  2.   


    System.out.println(fis.read(b, 0, 10)); // 这里为什么会输出的是10??
    这里独到10个字节,因此fis.read(b, 0, 10)返回的值是10System.out.println(b[i]); // 这里为什么输出49,50,51....... ??
    这里读到的是Ascii码的0123456789,转成int就是对应就是48到57System.out.println((char)b[i]);这样打印就是0123456789了
      

  3.   


    System.out.println(b[i]); 默认是Ascii码吗?java不是用unicode码的吗?