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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.itcast.test;
  2. import java.io.*;
  3. import java.util.*;

  4. public class SplitFile {

  5.         /**
  6.          * @param args
  7.          */
  8.         public static void main(String[] args) throws Exception {
  9.                 // TODO Auto-generated method stub
  10.                 //splitFile();
  11.                 merge();
  12.         }
  13.         public static void merge()throws IOException {
  14.                 ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();

  15.                 for(int x=1; x<=6; x++)        {
  16.                         al.add(new FileInputStream("C:\\Users\\shandawang\\Desktop\\"+x+".part"));
  17.                 }
  18.                 Iterator<FileInputStream> it = al.iterator();
  19.                 Enumeration<FileInputStream> en = new MyEnumeration<FileInputStream>(it);
  20.                 /*Enumeration<FileInputStream> en = new Enumeration<FileInputStream>() {
  21.                         public boolean hasMoreElements(){
  22.                                 return it.hasNext();
  23.                         }
  24.                         public FileInputStream nextElement() {
  25.                                 return it.next();
  26.                         }
  27.                 };
  28.                 */

  29.                 SequenceInputStream sis = new SequenceInputStream(en);
  30.                 FileOutputStream fos = new FileOutputStream("C:\\Users\\shandawang\\Desktop\\大地_副本.mp3");
  31.                 byte[] buf = new byte[1024];
  32.                 int len = 0;
  33.                 while((len=sis.read(buf))!=-1) {
  34.                         fos.write(buf,0,len);
  35.                 }
  36.                 fos.close();
  37.                 sis.close();
  38.         }

  39.         public static void splitFile() throws IOException {
  40.                 FileInputStream fis =  new FileInputStream("C:\\Users\\shandawang\\Desktop\\beyond - 大地.mp3");
  41.                 FileOutputStream fos = null;
  42.                 byte[] buf = new byte[1024*1024];
  43.                 int len = 0;
  44.                 int count = 1;
  45.                 while((len=fis.read(buf))!=-1){
  46.                         fos = new FileOutputStream("C:\\Users\\shandawang\\Desktop\\"+(count++)+".part");
  47.                         fos.write(buf,0,len);
  48.                         fos.close();
  49.                 }
  50.                 fis.close();
  51.         }
  52. }
  53. class MyEnumeration<E> implements Enumeration<E>{
  54.         private Iterator<E> i;
  55.         public MyEnumeration(Iterator<E> i) {
  56.                 this.i = i;
  57.         }
  58.        
  59.         @Override
  60.         public boolean hasMoreElements() {
  61.                 // TODO Auto-generated method stub
  62.                 return i.hasNext();
  63.         }

  64.         @Override
  65.         public E nextElement() {
  66.                 // TODO Auto-generated method stub
  67.                 return i.next();
  68.         }
  69. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马