编写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/*内,因为需要 ...
随机推荐
- Output of C++ Program | Set 16
Predict the output of following C++ programs. Question 1 1 #include<iostream> 2 using namespac ...
- 【编程思想】【设计模式】【行为模式Behavioral】模板模式Template
Python转载版 https://github.com/faif/python-patterns/blob/master/behavioral/template.py #!/usr/bin/env ...
- Linux基础命令---apachectl
apachectl apachectl指令是apache http服务器的前端控制程序,可以协助控制apache服务的守护进程httpd. 此命令的适用范围:RedHat.RHEL.Ubuntu.Ce ...
- RHEL 6.5 安装ORACEL11gR2
1.关闭selinux,用vi /etc/selinux/config selinux=disabled 2.使用yum安装rpm yum -y install compat-db compat-db ...
- Default Constructors
A constructor without any arguments or with default value for every argument, is said to be default ...
- Selenium之Canvas画布操作
现在有一个场景是需要进入到 Canvas画布中 进行单击操作,现在使用过如下方法 canvas = driver.find_element_by_xpath("//canvas[@id='# ...
- Mybatis-plus报Invalid bound statement (not found)错误
错误信息 org.springframework.security.authentication.InternalAuthenticationServiceException: Invalid bou ...
- 追踪工具strace
目录 一.简介 二.例子 找出程序读取的文件 查看现在程序在做什么 查看程序中哪个部分消耗大量cpu 无法连接服务器查看信息 一.简介 Linux 操作系统有很多用来跟踪程序行为的工具,内核态的函数调 ...
- Simple iPhone Keychain Access
Simple iPhone Keychain Access Mar 29th, 2010 9:14 pm The keychain is about the only place that an iP ...
- Matalb 正则表达式预处理数据(一)
clc clear %% Step 1: 读入数据 phasedata = readtable('phasedata.txt'); %% Step 2: 提取数据 time = phasedata(: ...