一个读取流,对应多个输出流。而且生成的碎片文件都有有序的编号

<span style="font-size:18px;">package com.io.other.split;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;public class SplitFileTest {/** * 文件切割器。 * 一个读取流,,对应多个输出流。而且生成的碎片文件都有有序的编号 * @param args * @throws IOException */private static final int DEFAULT_SIZE=1024*2;public static void main(String[] args) throws IOException {File srcFile=new File("chen\\11.avi");File destDir=new File("chen\\partfiles");SplitFile(srcFile,destDir);}/** * * @param srcFile * @throws IOException */public static void SplitFile(File srcFile,File destDir) throws IOException {if (!srcFile.exists()) {throw new RuntimeException(srcFile.getAbsolutePath()+",源文件不存在");}if(!destDir.exists()){destDir.mkdirs();}//1、定义一个源文件FileInputStream fis=new FileInputStream(srcFile);//2、创建目的引用FileOutputStream fos=null;//3、创建一个缓冲区存储数据byte[] buf=new byte[DEFAULT_SIZE];int len=0;int count=0;while((len=fis.read(buf))!=-1){//创建输出流,并明确要写入的文件File partFile=new File(destDir,(++count)+".part");fos=new FileOutputStream(partFile);fos.write(buf, 0, len);fos.close();}//在产生碎片文件时,需要产生一个配置文件,记录碎片的个数和源文件名字//partfile=n;filename=11.avi//配置文件中存储的键值信息。使用Properties集合Properties prop=new Properties();prop.setProperty("partcount", Integer.toString(count));prop.setProperty("filename", srcFile.getName());File conFile=new File(destDir,(++count)+".properties");fos=new FileOutputStream(conFile);//关闭资源fos.close();fis.close();}}</span>

版权声明:本文为博主原创文章,未经博主允许不得转载。

获致幸福的不二法门是珍视你所拥有的遗忘你所没有的。

一个读取流,对应多个输出流。而且生成的碎片文件都有有序的编号

相关文章:

你感兴趣的文章:

标签云: