java - 确定目录中 MimeType 的平均文件大小

标签 java

我正在通过 MimeType 扫描目录。到目前为止,我的代码计算了目录中现有 MimiType 的总数:

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()));

我想通过出现的 MimeType 来计算文件大小的总和,然后将其除以数量以获得每个 MimeType 的平均大小。 但我该如何实现呢?

最佳答案

你可以尝试这样的事情:

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;
     }
}

已编辑,因为旧版本没有完全按照您的要求进行操作。

关于java - 确定目录中 MimeType 的平均文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49194606/

相关文章:

java - LibGDX SpriteBatch渲染错误

java - JFreeChart 中系列的渐变颜色

java - 如何将 SQLite 数据从 Android 发送到 MySQL 服务器?

c# - 依赖注入(inject)导致工厂激增?

java - 使用 JBoss Cache 作为 Apache Lucene 的目录

java - 如何覆盖媒体播放器 fragment 中的后退按钮

java泛型方法签名

java - 如何在 EJB jar 文件中包含 jar 依赖项?

java - 试图了解相互身份验证 key 对和证书如何在 gRPC 上下文中工作

java - 当我尝试使用改造上传图像时,我得到空值