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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bowen-xiao 中级黑马   /  2015-1-20 14:54  /  997 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

功能演示:将一个文件分割成多个100KB以下的小碎片,再进行还原文件
  1. /**
  2.          * 分割文件流
  3.          * 将一个图片分割成100kb一个的小文件
  4.          * @throws Exception
  5.          * @since JDK 1.6
  6.          */
  7.         public void spiltFile() throws Exception{
  8.                 FileInputStream fis = new FileInputStream("C:\\myEclipse.jpg");
  9.                
  10.                 FileOutputStream fos = null;
  11.                 int len = 0;
  12.                 byte[] bf = new byte[102400];
  13.                 int count = 1;
  14.                
  15.                 while((len = fis.read(bf)) != -1 ){
  16.                         fos = new FileOutputStream("c:\\spiltFile\\"+count+".part");
  17.                         count++;
  18.                         fos.write(bf, 0, len);
  19.                         fos.close();
  20.                 }
  21.                 fis.close();
  22.                
  23.         }
  24.        
  25.         /**
  26.          * 功能流SequenceInputStream功能演示 功能,可以将多个流放到一起进行合流
  27.          * 程序功能:将spiltFile文件夹的碎片文件合并到test.jpg
  28.          * @throws Exception
  29.          * @since JDK 1.6
  30.          */
  31.         public void suquenceDemo() throws Exception {
  32.                 Vector<InputStream> v = new Vector<InputStream>();
  33.                 File files = new File("c:\\spiltFile");
  34.                 for (File f : files.listFiles()) {
  35.                         v.add(new FileInputStream(f));
  36.                 }

  37.                 Enumeration<InputStream> en = v.elements();
  38.                 SequenceInputStream sis = new SequenceInputStream(en);

  39.                 FileOutputStream fos = new FileOutputStream("c:\\spiltFile\\Eclipse.jpg");

  40.                 int len = 0;
  41.                 byte[] bf = new byte[1024];

  42.                 while ((len = sis.read(bf)) != -1) {
  43.                         fos.write(bf, 0, len);
  44.                 }
  45.                 fos.close();
  46.                 sis.close();

  47.         }
复制代码




评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

3 个回复

倒序浏览
楼主技术流啊,打算进多少期啊?
回复 使用道具 举报
jwl245322883 发表于 2015-1-20 15:26
楼主技术流啊,打算进多少期啊?

打算多写点代码写技术博客。
回复 使用道具 举报
其他都看懂了,枚举部分没看过,回头看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马