黑马程序员技术交流社区

标题: 用bufferedinputstream自带的缓冲区之后再自己定义一个缓冲区 为什么就不行了呢??? [打印本页]

作者: 刘孝泽    时间: 2014-6-24 18:41
标题: 用bufferedinputstream自带的缓冲区之后再自己定义一个缓冲区 为什么就不行了呢???
public class jiami {
        public static void main(String[] args) throws IOException {
                // TODO Auto-generated method stub
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream("62667_05big.jpg"));
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("胆小勿入.jpg"));
                int b;
                byte [] arr = new byte[1024];
                while((b=bis.read(arr))!=-1){
                        System.out.println(b);
                        bos.write(b);
                }
                bis.close();
                bos.close();
        }

}
作者: 崔湖尧    时间: 2014-6-24 21:52
定义的没有问题,是你的用法有问题
                 byte [] arr = new byte[1024];
                while((b=bis.read(arr))!=-1){ // 这里read(byte[])返回的是读到的长度,面不是读到的内容
                        System.out.println(b);
                        bos.write(b); // 这里应该是:bos.write(arr, 0, b);
                }




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