| 
 
| 本帖最后由 danielzyj 于 2014-3-28 08:14 编辑 
 把分割的文件合并成chm文件时,合并后的文件比之前的文件小了,而且打不开复制代码package cn.baidu.com;
 
import java.io.*;
import java.util.*;
//
public class SplitFile {
        public static void main(String[] args) throws IOException {
                splitFile();
                merge();
        }
        public static void merge() throws IOException
        {
                ArrayList<FileInputStream> a1=new ArrayList<FileInputStream>();
                
                for(int x=1;x<=3;x++)
                {
                        a1.add(new FileInputStream("F:\\Demo"+x+".part"));
                        
                }
                final Iterator<FileInputStream> it=a1.iterator();
                
                Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()
                {
                        public boolean hasMoreElements()
                        {
                                return it.hasNext();
                        }
                        public FileInputStream nextElement()
                        {
                                return it.next();
                        }
                };
                
                SequenceInputStream sis=new SequenceInputStream(en);
                FileOutputStream fos=new FileOutputStream("F:\\NEW-DHTML.chm");
                byte[] buf=new byte[1024];
                int len=0;
                while((len=sis.read(buf))!=-1)
                {
                        fos.write(buf, 0, len);
                }
                
                fos.close();
                sis.close();
        }
        public static void splitFile() throws IOException
        {
                FileInputStream fis=new FileInputStream("F:\\DHTML.chm");
                FileOutputStream fos=null;
                byte[] buf=new byte[1024*1024];
                int len=0;
                int count=1;
                while((len=fis.read(buf))!=-1)
                {
                        fos=new FileOutputStream("F:\\Demo"+(count++)+".part");
                        fos.write(buf, 0, len);
                        fos.close();
                }
                fis.close();
        }
}
 | 
 |