运用Java编写程序 将小文件重新组合成大文件
思路:
1、将对应目录中的所有小文件遍历
2、将遍历的小文件读入byte数组中
3、在将byte数组写入大文件中
注意:此文中对应的小文件所在的父文件夹中只包含小文件并且小文件是有序排列的
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class TogetherDemo {
public static void main(String[] args){
//调用togetherFile()函数合并小文件到大文件 参数列表分别为 (小文件所在的父文件夹路径,所合成的大文件的路径)
togetherFile("D:\\java\\cuts","D:\\java\\cut\\ForrestGump.avi");
}
private static void togetherFile(String src, String endsrc){
FileOutputStream fos = null;
File file1 = null;
File file2 = null;
try {
file1 = new File(endsrc);
file2 = new File(src);
//获得大文件的存储路径的FileOutputStream对象
fos = new FileOutputStream(endsrc);
//循环遍历对应文件夹中的所有小文件
for(File file : file2.listFiles()){
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
byte[] b = new byte[1024*1024];
int len = 0;
//将小文件读入byte数组,之后再将byte数组写入大文件中
while((len = fis.read(b)) != -1){
fos.write(b, 0, len);
}
//结束资源
fis.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fos != null){
//结束资源
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
代码实现前后的文件目录截图
小文件路劲截图:
代码执行前的大文件路径截图:
代码执行后的大文件路径截图: