博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java下io文件切割合并功能加配置文件
阅读量:5035 次
发布时间:2019-06-12

本文共 3328 字,大约阅读时间需要 11 分钟。

package cn.stat.p1.file;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.SequenceInputStream;import java.util.ArrayList;import java.util.Collections;import java.util.Enumeration;import java.util.Properties;public class qiefiledemo {private static int SIZE=1024*1024;    /**     * @param args     * @throws IOException      */    public static void main(String[] args) throws IOException {                //文件切割        File file=new File("D:\\3.avi");        splitFile(file);                //文件组合        File file2=new File("D:\\cc");        mergeFile(file2);    }    //文件组合    public static void mergeFile(File dir) throws IOException    {        //读取配置文件        File[] files =dir.listFiles(new sufFilter(".properties"));                //判断文件是否存在        if(files.length!=1)            throw new RuntimeException("文件不存在");                //创建文件流        File fl=files[0];        //获取文件信息        Properties prot=new Properties();        FileInputStream fis=new FileInputStream(fl);        prot.load(fis);                String filename=prot.getProperty("filename");        int count=Integer.parseInt(prot.getProperty("patconut"));                //获取目录下所有的碎片文件        File[] patfile=dir.listFiles(new sufFilter(".pat"));                if(patfile.length!=count)        {            throw new RuntimeException("数目不对");        }                        ArrayList
al=new ArrayList
(); for(int i=0;i
en=Collections.enumeration(al); SequenceInputStream sis=new SequenceInputStream(en); FileOutputStream fos=new FileOutputStream(new File(dir,filename)); byte[] buf=new byte[SIZE]; int len=0; while((len=sis.read(buf))!=-1) { fos.write(buf,0,len); } fos.close(); sis.close(); } //文件切割 public static void splitFile(File file) throws IOException { //用于读取流的关联文件 FileInputStream fis=new FileInputStream(file); //定义一个1M的缓冲区 byte[] buf=new byte[SIZE]; //创建目地 FileOutputStream fos=null; //创建文件切割配置文件信息 Properties prop=new Properties(); int conut=0; int len=0; File dir=new File("D:\\cc"); if(!dir.exists()) { dir.mkdir(); } while((len=fis.read(buf))!=-1) { fos=new FileOutputStream(new File(dir,(conut++)+".pat")); fos.write(buf,0,len); } //创建配置文件 fos=new FileOutputStream(new File(dir,conut+".properties")); prop.setProperty("patconut",conut+""); prop.setProperty("filename",file.getName()); prop.store(fos,""); fos.close(); fis.close(); }}

 

package cn.stat.p1.file;import java.io.File;import java.io.FilenameFilter;public class sufFilter implements FilenameFilter {        private String suffix;    @Override    public boolean accept(File dir, String name) {        // TODO Auto-generated method stub        return name.endsWith(suffix);    }    public sufFilter(String suffix) {        super();        this.suffix = suffix;    }}

 

转载于:https://www.cnblogs.com/zywf/p/4782279.html

你可能感兴趣的文章
[HNOI2012]永无乡 线段树合并
查看>>
SqlServer之Convert 函数应用格式化日期(转)
查看>>
软件测试领域中的10个生存和发展技巧
查看>>
2017/09/15 ( 框架2)
查看>>
Centos下源码安装git
查看>>
gulp-rev-append md5版本号
查看>>
IO流之File类
查看>>
sql 基础语句
查看>>
CF717A Festival Organization(第一类斯特林数,斐波那契数列)
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
Oracle composite index column ordering
查看>>
kaggle竞赛
查看>>
区块链入门教程
查看>>
npm常用命令
查看>>
南海区行政审批管理系统接口规范v0.3(规划)4.2.【queryExpireList】当天到期业务查询...
查看>>
[置顶] 细说Cookies
查看>>
[wp7软件]wp7~~新闻资讯,阅读软件下载大全! 集合贴~~~
查看>>
生成指定位数随机数的方法
查看>>
Essential C++学习笔记
查看>>
where,having与 group by连用的区别
查看>>