编写Java程序,在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小

简介: 编写Java程序,在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小

需求说明:


在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小


13.png


实现思路:


创建ImageFileFilter类实现FilenameFilter接口,且重写accept方法,该方法中对文件后缀.jpg进行判断


因涉及到比较文件大小操作,创建比较器类 FileComparator,实现 java.util.Comparator 接口,为该类添加泛型 File,并重写 compare(File file1,File file2) 方法,该方法的作用是对两个文件进行比较。


创建运行Java类,在main方法中定义File指向目录,调用listFiles方法,并且传入实例化的过滤对象得到文件数组


调用Arrays.sort方法传入数组及比较类对象,实现排序


输出数组中第一个元素即是文件最大的


实现代码:


文件过滤器类(ImageFileFiter)

import java.io.File;
import java.io.FilenameFilter;
public class ImageFileFiter implements FilenameFilter {
  @Override
  public boolean accept(File dir, String name) {
    //指定后缀名为.jpg的文件作为过滤条件
    return name.endsWith(".jpg");
  }
}


比较器类(FileComparator)

import java.io.File;
import java.util.Comparator;
public class FileComparator implements Comparator {
  @Override
  public int compare(Object o1, Object o2) {
    File file1 = (File)o1;
    File file2 = (File)o2;
    if (file1.length()>file2.length()) {
      return -1;
    } else if (file1.length()<file2.length()) {
      return 1;
    }else{
      return 0;
    }
  }
}


启动器类(FindMaximumImageFile)


import java.io.File;
import java.util.Arrays;
public class FindMaximumImageFile {
  public static void main(String[] args) {
    //创建需要访问的目录对象
    File directory = new File("D:\\YMJ\\E7篮球社\\JPG 预览图");
    //根据创建的文件过滤对象,过滤出所有的jpg文件,返回一个file对象
    File[] files = directory.listFiles(new ImageFileFiter());
    //判断目录内是否有子文件或者子目录
    if (files != null) {
      //使用创建的比较器,按照文件大小降序排序
      Arrays.sort(files,new FileComparator());
      //数组内的第一个元素就是占用磁盘空间最大的文件
      File targetFile =files[0];
      //打印出该文件的文件路径和文件大小
      System.out.println("文件路径:"+targetFile.getAbsolutePath());
      System.out.println("文件大小:"+targetFile.length());
    } else {
      System.out.println("改文件内没有文件!");
    }
  }
}
相关文章
|
3月前
|
人工智能 监控 安全
智慧工地解决方案,java智慧工地程序代码
智慧工地系统融合物联网、AI、大数据等技术,实现对施工现场“人、机、料、法、环”的全面智能监控与管理,提升安全、效率与决策水平。
120 2
|
1月前
|
安全 Java
Java异常处理:程序世界的“交通规则
Java异常处理:程序世界的“交通规则
298 98
|
2月前
|
存储 Java 编译器
对比Java学习Go——程序结构与变量
本节对比了Java与Go语言的基础结构,包括“Hello, World!”程序、代码组织方式、入口函数定义、基本数据类型及变量声明方式。Java强调严格的面向对象结构,所有代码需置于类中,入口方法需严格符合`public static void main(String[] args)`格式;而Go语言结构更简洁,使用包和函数组织代码,入口函数为`func main()`。两种语言在变量声明、常量定义、类型系统等方面也存在显著差异,体现了各自的设计哲学。
|
8月前
|
存储 Java 数据库连接
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
|
缓存 监控 算法
Java程序性能优化策略与实践
在当今软件开发领域,Java作为一种广泛应用的编程语言,其程序性能优化显得尤为重要。本文将介绍一些Java程序性能优化的策略和实践,帮助开发者提高代码执行效率、减少资源消耗,并优化用户体验。通过深入探讨各种优化技术和工具,读者将能够更好地理解和运用这些策略,有效提升Java应用程序的性能。
157 1
|
算法 Java 数据处理
Java程序性能优化研究
Java程序性能优化研究
171 0
|
监控 算法 Java
限时!字节Java程序性能优化宝典开源,原来这才叫性能优化
让你的Java程序更快、更稳定 程序的性能受代码质量的直接影响。那么该如何让代码在级别上提升系统性能呢? 其实性能提升永远没有捷径,需要 分析、优化、实验、监控 ,需要一点点积累和深入。随着你对项目和性能优化理解不断深入,会发现提升性能的手段变得越来越丰富,性能数据自然也会跟着上去。 一个优秀的程序员,不仅要会编写程序,更要会编写高质量的程序感受Java开发中的大智慧,让你的Java程序更优美。那么今天LZ挖出一份有关Java程序性能优化的文档,可以让你的Java程序更快、更稳定,主要是涵盖了一些Java程序的优化方法和技巧:
143 1
竟有阿里大牛用678页PDF只讲Java程序性能优化,除了干货就是干货
Java程序性能优化虽然是一个老生常谈的话题,但想要把这个话题真正讲解清楚却并不容易。目前,市面上为数不多的讲解Java程序性能优化的图书内容不够深入,讲解也不够浅显易懂,有的甚至晦涩难懂。
|
监控 算法 Java
限时!字节Java程序性能优化宝典开源,原来这才叫性能优化
让你的Java程序更快、更稳定 程序的性能受代码质量的直接影响。那么该如何让代码在级别上提升系统性能呢?