黑马程序员技术交流社区

标题: 关于字节流缓冲区的一个小问题 [打印本页]

作者: 郑正华    时间: 2012-8-9 18:32
标题: 关于字节流缓冲区的一个小问题
在读取字节流文件时,创建了一个BufferedInputStream流,通过字节流的缓冲区来完成,那这时如果自己再自定义一个字节流缓冲区来读取:byte[] b = new byte[任意数],效率是不是更高了?还是没有任何性能上的提升,我已经蒙了!

public static void main(String[] args) throws Exception{

           FileInputStream fis = new FileInputStream("xxx.txt");

          BufferedInputStream bufis = new BufferedInputStream(fis);//调用了字节流的缓冲区来读取,
          byte[] b = new byte[1024];//自己又自定义了一个字节流缓冲区,1024根据具体情况而定,不是固定值。
  
           OutputStream out = System.out;
           BufferedOutputStream bufos = new BufferedOutputStream(out);
           int len = 0;
           while((len = bufis.read(b))!=-1){//这里是调用了bufis对象的read方法来读对象b的。
                 bufos.write(b,0,len);
                 bufos.flush();
        }
}
作者: 张雪磊    时间: 2012-8-9 19:37
public static void main(String[] args) throws Exception{

           FileInputStream fis = new FileInputStream("xxx.txt");

          BufferedInputStream bufis = new BufferedInputStream(fis);//调用了字节流的缓冲区来读取,
          byte[] b = new byte[1024];//自己又自定义了一个字节流缓冲区,1024根据具体情况而定,不是固定值。
  
           OutputStream out = System.out;
           BufferedOutputStream bufos = new BufferedOutputStream(out);
           int len = 0;

           while((len = bufis.read(b))!=-1){//这里是调用了bufis对象的read方法来读对象b的。
/*
这列你用的read方法是杜旭一个数组,
*/
                 bufos.write(b,0,len);
                 bufos.flush();
        }
}

肯定可以提高效率,如果你一个一个读先后就写,那肯定效率就低,如果先把输入流里面的数据读写一个数组,然后用写数组地方法玩外泄,肯定提供了效率







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