A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑正华 中级黑马   /  2012-8-9 18:32  /  1748 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

在读取字节流文件时,创建了一个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();
        }
}

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
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();
        }
}

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


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马