package cn.itheima.cway.IO;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCutDemo {
private static final int SIZE = 1024*1024;
/**
*需求:将一个大文件切割为若干个小文件(文件碎片,按照1M计算)
*
* 思路:
* 1、既然涉及到需要读取大文件内容那么就需要一个文件输入流:FileInputStream
* 2、既然需要将大文件转换为小文件(文件碎片)则说明需要一个文件输出流,用来产生碎片文件:FileOutputStream
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File file=new File("F:\\A.mp3");
File dir=new File("F:\\ss");
splitFile(file,dir);
}
public static void splitFile(File file,File dir) throws IOException
{
//用读取流关联源文件
FileInputStream fis=new FileInputStream(file);
//定义一个1M的缓冲区,每次切割1M数据到临时文件中
byte[] buf=new byte[SIZE];
//创建目的
FileOutputStream fos=null;
//如果目录不存在则创建
if(!dir.exists())
dir.mkdir();
int len=0;
//切割文件的名字
int count=1;
while((len=fis.read(buf))!=-1)
{
fos=new FileOutputStream(dir+"\\"+(count++)+".part");
fos.write(buf,0,len);
}
fis.close();
fos.close();
}
}
IO流--SequenceInputStream序列化流的应用---文件切割
最新推荐文章于 2022-08-04 17:07:20 发布