编写Java程序,在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小
查看本章节
查看作业目录
需求说明:
在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小
实现思路:
创建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("改文件内没有文件!");
}
}
}
编写Java程序,在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小的更多相关文章
- Linux命令之查看文件夹、文件数量及其所占磁盘空间
一.查看数量 # 查看当前目录下的文件数量(不包含子目录中的文件) ls -l|grep "^-"| wc -l # 查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表 ...
- linux下使用 du查看某个文件或目录占用磁盘空间的大小
du -ah --max-depth=1 这个是我想要的结果 a显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小但是由于用了--max-depth选项,表示显示目录下所有 ...
- [转帖]linux下使用 du查看某个文件或目录占用磁盘空间的大小
linux下使用 du查看某个文件或目录占用磁盘空间的大小 du -ah --max-depth= 去年用过一次 后来忘记了.. 命令这个东西 熟能生巧.. https://www.cnblogs.c ...
- C#编写程序监测某个文件夹内是否有文件进行了增,删,改的动作?
新建一个Console应用程序,项目名称为“FileSystemWatcher”,Copy代码进,编译后就可以用了.代码如下: using System; using System.Collectio ...
- ftp下载目录下所有文件及文件夹内(递归)
ftp下载目录下所有文件及文件夹内(递归) /// <summary> /// ftp文件上传.下载操作类 /// </summary> public class FTPH ...
- 初学编写JAVA程序
一.编写JAVA程序 编写JAVA程序,输出一行文本信息:“Hello world”,选择编辑器eclipse,打开之后编写程序 public class Hello{ public static v ...
- 批量生成文件夹内所有文件md5
说明:md5批量生成批处理脚本,无需安装任何软件,直接调用系统文件进行生成,简单基于windows命令编写了一个批量生成md5值的脚本. 使用说明:新建文本文档,命名为get_md5.bat,直接将代 ...
- apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件或目录执行权限的设置方法
apache环境下禁止某文件夹内运行PHP脚本.禁止访问文件或目录执行权限的设置方法 首先我们来看两段对上传目录设置无权限的列子,配置如下: <Directory "要去掉PHP执 ...
- Python实现删除文件夹内规定时间内的文件
需求: 在测试程序的时候,程序会大批量的上传文件到规定目录,然后文件根据日期DAY新建文件夹存放,比如28号上传的文件放到 .../28/* 内,29号上传的文件放到 .../29/*内,因为需要 ...
随机推荐
- vim一键整理代码命令
vim下写代码超实用代码格式整理命令,仅需四步 ①先使用 gg 命令使光标回到第一行 ②shift+v 进入可视模式 ③shift+g 全选 ④按下 = 即可 混乱的代码格式 四步整理以后 工整又 ...
- Gradle—Android配置详解
参考[1]彻底弄明白Gradle相关配置 [2]Android Studio gradle配置详解
- windows下的_vimrc
折腾了一天 在https://keelii.github.io/2016/06/13/awsome-window-vimrc/的基础上进行了一些改动 " ------------------ ...
- Android消除Toast延迟显示
Toast可以用来显示音量改变或者保存更新消息,如果用户一直点击,Toast会排队一个一个的,直到消息队列全部显示完,这样的效果显然是不好的,下面来看解决方法 Toast.makeText(ac ...
- 【Java基础】Java 注解详解
对于Java注解,我之前的印象是很模糊的,总觉得这个东西经常听说,也经常用,但是具体是怎么回事,好像没有仔细学习过,说到注解,立马想到@Controller,仅此而已. 对于Java注解,我咨询过一些 ...
- Java中Date类型与String 类型之间的互相转换
Java中String类型和Date类型之间的转换 我们在注册网站的时候,往往需要填写个人信息,如姓名,年龄,出生日期等,在页面上的出生日期的值传递到后台的时候是一个字符串,而我们存入数据库的时候确需 ...
- pipeline配置java项目
pipeline { agent { label 'slave' } options { timestamps() disableConcurrentBuilds() buildDiscarder( ...
- centos配置 显示中文
目录 一.简介 二.操作 一.简介 不显示中文,出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导致的. 二.操作 1.查看当前系统语言 登陆linux系统打开操作终端之后,输入 e ...
- 任务信息的高级选项(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 张同学说,[高级]选项卡很重要,嗯,本妖深以为然! 这里的[高级]选项卡,是指[任务信息]里的,在默认视图下,只要双击某任 ...
- java 编程基础 Class对象 反射 :参数反射
方法参数反射 Java8在java.lang.reflect包下新增了Executable抽象基类,该对象代表可执行的类成员,该类派生了Constructor和Method两个子类.Executabl ...