文件的切割与合并功能实现</h2>
</pre><pre name="code" class="java">import java.io.*;
import java.util.*;
public class FileSpileDemos
{
public static void main(String[] args) throws Exception
{
//获取将需要切割的文件
File file = new File("E:\\myjava\\2015-6-14\\凤凰传奇-最炫民族风.mp36quot;);
//调用自定义切割文件功能
spilt(file,"E:\\myjava\\2015-6-14\\abc",".mp3");
//获取需要合并文件的目录
File files = new File("E:\\myjava\\2015-6-14\\abc");
//调用自定义合并文件功能
megrefile(files,"myis","E:\\myjava\\2015-6-14\\121\\",".mp3");
}
设置一个文件合并功能
//自定义合并文件功能,依次输入合并文件源目录,合并后输出文件名字,合并后文件输出路径,以及输出文件格式
public static void megrefile(File file,String namess,String paths,String format) throws Exception
{
System.out.println("合并文件功能启动");
//获取指定目录下的文件以及指定格式的文件
File[] files = file.listFiles(new Merger(format));
//创建一个容器用来储存这些文件流对象
Vector<FileInputStream> v = new Vector<FileInputStream>();
for(int x=0;x<files.length;x++)
{
//将获取的文件与流关联并添加到容器中去
v.add(new FileInputStream(files[x]));
}
Enumeration<FileInputStream> en =v.elements();
//合并多个流
SequenceInputStream sis = new SequenceInputStream(en);
//创建输出文件目录
FileOutputStream fos = new FileOutputStream(paths+namess+format);
int len = 0;
byte[] byt = new byte[1024];
while((len=sis.read(byt))!=-1)
{
fos.write(byt);
fos.flush();
}
sis.close();
}
<h3>实现文件的切割功能</h3> public static void spilt(File file,String paths,String format) throws Exception
{
System.out.println("分割文件功能启动");
//将文件封装对象
//使用流关联文件对象
FileInputStream fis = new FileInputStream(file);
String name = file.getName();
//定义一个缓冲区
byte[] byt = new byte[1024*1024];
//创建一个目的地
FileOutputStream fos = null;
//设置分割文件储存路径
File fi = new File(paths);
//创建存储分割文件的文件夹,如果目的文件夹不存在,那么就创建
if(!fi.exists())
fi.mkdirs();
int len = 0;
int count = 1;
//创建一个储存数据的容器
Properties pro = new Properties();
//读取文件数据
while((len=fis.read(byt))!=-1)
{
//将文件命名并添加到流当中
fos = new FileOutputStream(new File(fi,name+(count++)+format));
fos.write(byt,0,len);
fos.close();
}
//将被切割的文件保存到pro集合中去
pro.setProperty( "partcount",count + "" );
pro.setProperty( "filename",file.getName());
fos = new FileOutputStream(new File(fi,count + ".properties" ));
//将prop集合中的数据存储到文件中
pro.store(fos, "save file info");
fis.close();
fos.close();
}
}
建立一个指定格式文件的过滤器
//设置一个筛选指定格式文件的过渡器
class Merger implements FilenameFilter
{
private String format;
Merger(String format)
{
this.format=format;
}
public boolean accept(File dir, String name)
{
//
return name.toLowerCase().endsWith(format);
}
}