AdultBird 2015-09-04 07:53 采纳率: 77.8%
浏览 1484
已采纳

java求哪位大神帮看看,分割可以,粘合不行!

import java.util.*;
import java.io.*;
class SplitDemo
{
public static void main(String[] args) throws IOException
{
//File file=new File("D:\我想念你.mp3");
File dir=new File("D:\splitfiles");
//String storeDir=dir.toString();
//splitFile(file);
bondFile(dir);
}
public static void splitFile(File file)throws IOException{//文件切割
FileInputStream fis=new FileInputStream(file);//创建读取流对象与被切割文件关联
FileOutputStream fos=null;
byte[] buf=new byte[1024*1024];
int len=0;
int count=1;
while((len=fis.read(buf))!=-1){
//每读取1024KB源文件,则用输出流存储1024KB文件到指定目录下,然后输出流
fos=new FileOutputStream("D:\splitfiles\"+(count++)+".part");
fos.write(buf,0,len);
fos.close();

    }
}
public static void bondFile(File dir)throws IOException{//将指定目录文件内的同类型文件进行粘合,再将粘合后的文件存回
    Vector<FileInputStream> v=new Vector<FileInputStream>();//创建Vector集合对象v,用来存储文件输入流对象
    File[] files=dir.listFiles();
    for(File file:files){//遍历目录文件,将符合条件的文件与流关联,并存储到Vector集合中
        if(file.getName().endsWith(".part"));
            v.add(new FileInputStream(file));
    }
    Enumeration<FileInputStream> en=v.elements();
    SequenceInputStream sis=new SequenceInputStream(en);
    FileOutputStream fos=new FileOutputStream(dir);
    byte[] buf=new byte[1024*1024];
    int len=0;
    while((len=sis.read(buf))!=-1){
        fos.write(buf,0,len);
    }
    fos.close();
    sis.close();


}

}

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-09-04 07:55
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装