解决方案 »

  1.   

    你上面的 buf 表示的是要读取的内容,像你这样read(buf)等于把读取的内容又存入buf;
    所以你需要创建一个buff,然后调用read(buff),这样可以从输入流中读取一定数量的字节,并将其存储在缓冲区数组 buff 中;数组是个对象,在read(buff)中,传递的是这个对象的引用copy,当读取字节后,存储在缓冲区数组 buff 中不行吗?自己写个方法测试下就清楚了;像你上面的这个程序确实可以直接buf中获取数据,但不是所有的流都是写入缓存区的,像FileOutputStream是用于将数据写入 File 的输出流;这样FileInputStream 的read()方法和read(byte[] b)区别就明显了,read()每次只读取一个字节,read(byte[] b)方法每次读取一定数量的字节,哪个方法效率高,你自己测试下就知道了;
      

  2.   

    你这里的buf有点乱套啊,建议你还是先搞明白ByteArrayInputStream和ByteAarrayOutputStream的使用