一、前言
今天给大家分享一个自己写的ava实战的小案例,主要功能是实现指定一个文件夹,然后分组压缩里面的文件。其实这个案例还是有一定用途的,比如日志文件夹里面有几千个文件,如果我需要给每个压缩包指定10M,把整个文件夹里面的日志文件都进行压缩,这个案例就能够用得上了。废话少说,直接上代码。我这边采用的是最基本的控制台程序,主要还是代码的逻辑有一定的借鉴意义。
说明:暂时未考虑文件夹里面还有文件夹的情况。
二、代码示例
-
新建FileModel.java 实体
主要指定文件名以及文件大小,方便分组的时候使用。
public class FileModel {
public FileModel(String name, double fileSize) {
this.name = name;
this.fileSize = fileSize;
}
// 文件名
public String name;
// 文件大小KB
public double fileSize;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getFileSize() {
return fileSize;
}
public void setFileSize(double fileSize) {
this.fileSize = fileSize;
}
}
-
Main.java 代码:
文件夹中文件分组大小采用了递归的方式。为了实现效果代码都放在了Main.java里面。具体代码都有注释,直接看注释就行。
private static final double FILE_SIZE=5500; // 指定分组压缩的大小 550KB
private static final String PATH="D:\Test; // 指定要处理的文件夹
public static void main(String[] args) {
List<FileModel> list = getFiles(PATH);
HashMap<Double, List<FileModel>> map = new HashMap<>();
getArr(list,FILE_SIZE,map);
if(map.size()>0)
{
for (Double aDouble : map.keySet