File类和时间类的两道综合练习
练习1:
获取指定目录下(包含子目录)所有的某一种类型的文件
分析:
1.指定路径并获取其下的文件对象
2.要判断给定的目录是否为空
3.要判断给定路径下获取的目录是否为空
4.判断是否是某种文件
5.因为要求目录下的所有的文件,因此要区分到底是文件夹还是文件,使用递归思想
public class Test {
public static void main(String[] args) {
//创建一个file对象,里面存放指定的目录
File names = new File("D:\\文\\浏览器下载");
String suffix = ".pdf";
getImgList(names,suffix);
}
private static void getImgList(File names,String suffix) {
if(!names.exists())
throw new RuntimeException("没有这个文件夹");
//遍历所有的文件对象来进行操作
File[] f = names.listFiles();
if(f == null)
return ;
for(File name : f){
if(name.isFile()){
if(name.getName().endsWith(suffix))
System.out.println(name.getAbsolutePath());
}else if(name.isDirectory()){
getImgList(name,suffix);
}
}
}
}
------------------------------------------------------
练习2:
获取指定目录下(包含子目录)所有在2016年修改的文件
分析:
1.获取并进行一系列的判断
2.将获得的时间格式化,判断是否等于2016年.
3.因为是所有的文件,需要去使用到递归
public class Test {
public static void main(String[] args) {
//
String year = "2016";
File dir = new File("D:\\文档\\浏览器下载");
getFileListByYear(dir,year);
}
private static void getFileListByYear(File dir,String year) {
//先判断这个文件夹是否存在,不存在的话,抛出异常
if(!dir.exists())
throw new RuntimeException("您指定的目录不存在!");
//对文件夹进行遍历
File[] names = dir.listFiles();
//如果遍历文件夹得到的结果是空的,则结束
if(names == null) return;
for(File name : names){
if(name.isFile()){
//输出的是最后一次修改时间的毫秒时
long time = name.lastModified();
//将毫秒时格式化为我们喜欢的格式
Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
String newYear = sdf.format(date);
if(newYear.equals(year)){
System.out.println(name.getName());
}
}else{
getFileListByYear(name, year);
}
}
}
}
File类和时间类的两道综合练习的更多相关文章
- [19/03/16-星期六] 常用类_Date时间类&DateFormat类
一.Date时间类 计算机中 以1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一) 用ong类型的变量来表示时间,如当前时刻数值:long now =n ...
- Java日期时间API系列13-----Jdk8中java.time包中的新的日期时间API类,时间类转换,Date转LocalDateTime,LocalDateTime转Date等
从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转D ...
- Java常用类之时间类
JDK8之前日期时间API 1. java.lang.System类 2. java.util.Date类 3. java.text.SimpleDateFormat类 4. java.util.Ca ...
- java——String类,时间类,格式化
日期类 格式化
- Java时间类从此变得清晰明了
Java时间类 Java时间类分为Date 日期类和Calendar 日历类,相信很多小伙伴在初学时会对这个两个类的用法.区别以及有什么联系会感到疑惑,似乎懂了,但又不能具体说清,今天再带你来清晰的再 ...
- 日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结
1.日期类,时间类,日期时间类 初步日期使用方法及格式转换方法(旧方法): 格式://Mon Jul 30 11:26:05 CST 2018 年月日时分秒 CST代表北 ...
- Java学习(正则表达式、Date类、DateFormat类、Calendar类)
一.正则表达式 1.概念:英语:Regular Expression,在代码中常简写为regex.正则表达式,是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串. ...
- 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)
本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...
- 求计算两个时间的差(DateTime类和TimeSpan类)
日期时间数据是项目设计过程中经常需要处理的信息,C#提供了DateTime类和TimeSpan类来处理日期时间数据.下面介绍说明Datetime类和TimeSpan类的使用 //初始化DateTime ...
随机推荐
- Everything开机自启
第一步:关闭自动启动 在设置中关闭everything开机自动启动. 第二步:创建计划任务 点击“开始”—“任务计划程序”—“创建任务” 首先设置任务的名称等,注意一定要勾选“使用最高权限运行”. 然 ...
- JavaScript中DOM的层次节点(一)
DOM是针对HTML和XML文档的一个API,描绘了一个层次化的节点树,允许开发人员添加.修改.删除节点的一部分. DOM将HTML和XML文档描绘成一个有多个节点构成的结构,节点分为12种不同的节点 ...
- HDU1864(背包)
最大报销额 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- android延迟执行
延迟执行可以通过以下操作实现,按照推荐的顺序列出来 1. new Handler().postDelayed(new Runnable(){ public void run() { //execut ...
- 解决使用Idea/Eclipse编写Hadoop程序包依赖问题
解决使用Idea/Eclipse编写Hadoop程序包依赖问题 解决包依赖的一种简单粗暴方法就是, 把下载下来的Hadoop压缩包解压, 搜索里面所有的额jar包文件,然后复制到一个目录,在使用Ide ...
- OpenLayers.Map的一些特殊事件
开年上班的第二天,无意中看到一些没见过的事件,特地来给广大人民群众报个信. 众所周知的,map里面的 eventListeners 支持的事件挺多的,比如: var map = new OpenLay ...
- EntityFramewok Core 1.1连接MSSql数据库详解
最近在研究ASP.NET Core,其中就用到了Entity Framework Core,对于Entity Framework Core连接SqlServer数据库,使用Code Frist创建数据 ...
- linux系统盘使用率达到100%的问题查找和解决方法
今天公司云服务器报警系统发来短信,系统磁盘空间不够,登录服务器进行查看,磁盘使用虑达到100%, 感觉比较奇怪,所存的东西并不多,怎么会将磁盘占满,而且数据都是存在数据盘下,通过简单的进行 ...
- WebServerice
WebServerice是什么 web service是一个web应用程序的分支,是构建应用程序的普通模型,可以在支持Internet网络通信操作系统上实施. 它的原理主要是利用HTTP协议使数据在w ...
- Swift 面向对象解析(一)
面向对象总体概括: Swift 不仅能够面向过程编程,也能够面向对象编程(OOP).面向对象其实就是“以对象为核心”,把我们的客观世界想着是由一个个对象组成的,面向对象编程则为对象提供了属性和方法,属 ...