一种分割与组合文件的方法-Java实现

如果需要传输一个大文件(例如一个8GB的AVI文件)。我们需要将文件分割为几个小的文件碎片,这是为了提高传输的速度与安全性。当接受到这些文件碎片后,又需要将这些碎片重新组合起来,还原为原文件。

分割:

public static void backUpFile()throws IOException {
        String filename="D:\\theWay.mp3";//enter your file name here.
        System.out.println("Begin");
        File soureFile=new File(filename);
        if(!soureFile.exists())
            System.exit(2);
        BufferedInputStream input2=new BufferedInputStream(new FileInputStream(soureFile));
        int num=10;
        long fileSize=input2.available();
        int splitFileSize=(int)Math.ceil(1.0*fileSize/num);
        System.out.println("......");
        for(int i=1;i<=num;++i)
        {
            BufferedOutputStream output2=new BufferedOutputStream(new FileOutputStream(new File(filename+i)));
            int value;
            int count=0;
            while(count++<splitFileSize&&(value=input2.read())!=-1)
                output2.write(value);
            output2.close();
        }
        input2.close();
        System.out.println("OK");
    }

组合:

String fileName1="D:\\theWay.mp3",fileName2="D:\\otherWay.mp3";
        int num=10;
        System.out.println("Begin");
        File sourceFile=new File(fileName1);
        File targetFile=new File(fileName2);
        if(!sourceFile.exists())
            System.exit(2);
        if(targetFile.exists())
            System.exit(2);
        BufferedOutputStream output2=new BufferedOutputStream(new FileOutputStream(targetFile));
        System.out.println("......");
        for(int i=1;i<=num;i++)
        {
            BufferedInputStream input2=new BufferedInputStream(new FileInputStream(new File(fileName1+i)));
            int value;
            while((value=input2.read())!=-1)
                output2.write(value);
            input2.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值