标签:
<p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px;"><span style="font-family: 微软雅黑; line-height: 30.796875px; text-indent: 28px;">------ <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.comtarget="blank"></span></p><p style="color: rgb(54, 46, 43); font-family: Arial; font-size: 14px; line-height: 26px;"><span style="font-family: 微软雅黑; line-height: 30.796875px; text-indent: 28px;">java培训</a>、期待与您交流! ---------</span></p><h2>文件的切割与合并功能实现</h2>
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); } }
标签:
原文地址:http://blog.csdn.net/zl18603543572/article/details/46494807