您的位置:首页 > 编程语言 > Java开发

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

2016-11-13 20:50 561 查看
如果需要传输一个大文件(例如一个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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: