zoukankan      html  css  js  c++  java
  • 分割流 SequenceInputStream (转)

    import java.io.*;
    import java.util.*; class SplitFile
    {
    public static void main(String[] args) throws Exception
    {
    //splitFile();
    merge();
    } public static void splitFile()throws Exception{
    FileInputStream fis = new FileInputStream("c:\1.mp3");
    FileOutputStream fos = null;

    byte[] buf = new byte[1024*1024]; int len = 0;
    int count = 1; //循环创建n个文件
    while((len = fis.read(buf)) != -1){
    fos = new FileOutputStream("c:\splitfiles\"+ (count++) +".part"); fos.write(buf, 0, len);
    fos.close();
    }

    fis.close(); }
    //合并?
    public static void merge() throws Exception{
    ArrayList<FileInputStream> al = new ArrayList<FileInputStream>(); for(int x=1; x<=17;x++){
    al.add(new FileInputStream("c:\splitfiles\"+x+".part"));
    }
    //匿名内部类,所以要对访问的局部变量做final修饰
    final Iterator<FileInputStream> it = al.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("c:\splitfiles\1.mp3"); byte[] buf = new byte[1024]; int len = 0; while((len = sis.read(buf))!=-1){
    fos.write(buf,0,len);
    }
    fos.close();
    sis.close();
    }
    }

  • 相关阅读:
    [Leetcode]@python 65. Valid Number
    二维数组循环求出最大子数组
    一维循环的数组求出最大子数组的和
    电梯调度算法需求分析
    返回一个整数数组中最大子数组的和
    最大子数组求解
    小学数学计算题随机出题软件
    四则运算的设计思路
    学期读书计划
    软件工程概论第十一章
  • 原文地址:https://www.cnblogs.com/azhqiang/p/3864648.html
Copyright © 2011-2022 走看看