我正在通过其MimeTypes扫描目录。到目前为止,我的代码计算了目录中现有MimiTypes的总量:
File dir = new File(dirPath);
File[] files = dir.listFiles((FileFilter) HiddenFileFilter.VISIBLE);
ArrayList<String> mimeArray = new ArrayList<String>();
if (files.length == 0) {
System.out.println("The directory is empty");
} else {
for (File aFile : files) {
mimeArray.add(mtftp.getContentType(aFile));
}
Map<String, Long> counts =
mimeArray.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
我想通过显示MimeTypes来对文件大小求和,并将其除以金额以获得每个MimeType的平均大小。 但是我该如何实现呢?
答案 0 :(得分:1)
您可以尝试这样的事情:
File dir = new File(dirPath);
File[] files = dir.listFiles((FileFilter) HiddenFileFilter.VISIBLE);
Map<String, ArrayList<Long>> mimeArray = new HashMap();
if (files.length == 0) {
System.out.println("The directory is empty");
}
else {
for (File aFile : files) {
if (!mimeArray.keySet().contains(mtftp.getContentType(aFile))) {
mimeArray.put(mtftp.getContentType(aFile), 0L);
}
mimeArray.get(mtftp.getContentType(aFile)) += aFile.length;
}
}
编辑,因为旧版本并没有完全符合您的要求。
答案 1 :(得分:0)
对结果mimeArray进行迭代,总结文件大小(file.lenght())并除以结果数。