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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马刘涛 于 2012-7-18 19:53 编辑
  1. package com.itcast.test;

  2. import java.io.IOException;
  3. import java.io.InputStream;

  4. class MyBufferedInputStream extends InputStream {
  5.         private InputStream in;
  6.         private byte[] buf = new byte[1024*4];// 缓冲区
  7.         private int pos = 0; // 字节数组指针
  8.         private        int count = 0; // 计数器,写入缓冲区中的字节数
  9.         MyBufferedInputStream(InputStream in) {
  10.                 this.in = in;
  11.         }
  12.         @Override
  13.         public int read() throws IOException {
  14.                 // TODO Auto-generated method stub
  15.                 if(count == 0) {
  16.                         pos = 0; // 缓冲区读完,清空继续写入
  17.                         count = in.read(buf);
  18.                         // 已到文件尾,返回-1
  19.                         if(count < 0)
  20.                                 return -1;
  21.                         byte b = buf[pos];
  22.                         pos++;
  23.                         count--;
  24.                         return b & 255; // int
  25.                 }
  26.                 else if(count > 0) {
  27.                         byte b = buf[pos];
  28.                         pos++;
  29.                         count--;
  30.                         return b & 255;
  31.                 }
  32.                 return -1;
  33.         }
  34.         public void myClose() throws IOException {
  35.                 in.close();
  36.         }
  37. }
复制代码
和毕老师写的一样,但是复制同样的文件,老毕写的那个只要300多毫秒,而我写的这个复制个文件慢的要死
原来是我没将数据写到缓冲区中,以上是修改后的代码:
发现一个新的问题:我写文件时刷新缓冲的输出流,比不刷新要慢很多。那么既然是这样,为什么buffferedOutputStream还要有flush方法。

捕获.PNG (25.93 KB, 下载次数: 27)

捕获.PNG

捕获.PNG (17.65 KB, 下载次数: 26)

捕获.PNG

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

6 个回复

倒序浏览
也许是您复制的文件比毕老师复制的那个文件要大很多吧
回复 使用道具 举报
差不多的,我用毕老师的程序复制同样的文件,只要327毫秒,差距巨大,求真相。
回复 使用道具 举报
顶一下。
回复 使用道具 举报
黑马刘涛 来自手机 中级黑马 2012-7-18 19:11:25
报纸
我用她的程序只要300毫秒
回复 使用道具 举报
黑马刘涛 来自手机 中级黑马 2012-7-18 19:13:48
地板
我有他源码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马