黑马程序员技术交流社区

标题: IO—SequenceInputStream文件合流 [打印本页]

作者: bowen-xiao    时间: 2015-1-20 14:54
标题: IO—SequenceInputStream文件合流
功能演示:将一个文件分割成多个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.         }
复制代码





作者: jwl245322883    时间: 2015-1-20 15:26
楼主技术流啊,打算进多少期啊?
作者: bowen-xiao    时间: 2015-1-20 15:57
jwl245322883 发表于 2015-1-20 15:26
楼主技术流啊,打算进多少期啊?

打算多写点代码写技术博客。
作者: 梁小刀11    时间: 2015-1-21 22:12
其他都看懂了,枚举部分没看过,回头看看




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