java基础—文件的切割与合并

文件的切割与合并功能实现</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);
	}
	}

你可能感兴趣的:(java基础—文件的切割与合并)