读书人

黑马软件工程师-合并和切割文件

发布时间: 2012-09-07 10:38:15 作者: rapoo

黑马程序员-合并和切割文件

-----------?android培训、java培训、java学习型技术博客、期待与您交流!?------------

/*合并流:
?对个源文件合并到一个文件中
?
构造方法:
?Vector(Collection<? extends E> c)
????????? 构造一个包含指定 collection 中的元素的向量,
????????? 这些元素按其 collection 的迭代器返回元素的顺序排列。
?
?SequenceInputStream(Enumeration<? extends InputStream> e)
????????? 通过记住参数来初始化新创建的 SequenceInputStream,
????????? 该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数。
?
?
?方法:
?Enumeration <>? elements()
???????????????? 返回此向量的组件的枚举。
?
?*/

 import java.util.*; import java.io.*; class SplitDemo { public static void main(String[] args) throws IOException { //SplitFile(); SequenceFile(); } public static void SequenceFile()throws IOException { ArrayList<FileInputStream> al=new ArrayList<FileInputStream>();//ArrayList效率比集合vetor要高些     for(int x=1;x<=3;x++)     {     al.add(new FileInputStream("D:\\TDDOWNLOAD\\javawork\\输入输出流\\切割文件\\"+x+".part"));     }     final Iterator<FileInputStream> it=al.iterator();     Enumeration<FileInputStream> en=new Enumeration<FileInputStream>()     {     public boolean hasMoreElements()//从内部类中访问局部变量it;需要被声明为最终类型     {     return it.hasNext();     }     public FileInputStream nextElement()     {     return it.next();     }     };     SequenceInputStream sis=new SequenceInputStream(en);//将三个集合对象放在一个源中    FileOutputStream fos=new FileOutputStream("D:\\TDDOWNLOAD\\javawork\\输入输出流\\切割文件\\SequenceFile.pdf");     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("D:\\TDDOWNLOAD\\javawork\\输入输出流\\切割文件\\03.pdf");     FileOutputStream fos=null;//创建对象的引用     byte[] buf=new byte[1024*1024];//建立起一个1M的缓存区,03.pdf文件大小为2.28 MB (2,398,408 字节),这里将其切成三段        int len=0;        int count=1;        while((len=fis.read(buf))!=-1)        {        fos=new FileOutputStream("D:\\TDDOWNLOAD\\javawork\\输入输出流\\切割文件\\"+(count++)+".part");            fos.write(buf,0,len);            fos.close();        }        fis.close(); }}

-----------?android培训、java培训、java学习型技术博客、期待与您交流!?------------

?

读书人网 >编程

热点推荐