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 ...
随机推荐
- HDU-1879-继续畅通工程(并查集)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1879 这题做的我好尴尬,虽然自己做出来了,感觉也不难,不过怎觉得, 对这个最小生成树的理解,好像总隔了 ...
- ImageView及其子类(三)
实例:使用QuickContactBadge关联联系人 QuickContactBadge继承了ImageView,因此它的本质也是图片,也可以通过android:src属性指定他显示的图片 ...
- 如何编译POCO
Poco C++库是: 一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa; 侧重于互联网时代的网络应用程序 使用高效的,现代的标准ANSI/ISO C++,并基于STL 高可移 ...
- java操作redis redis连接池
redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...
- pyspark 内容介绍(一)
pyspark 包介绍 子包 pyspark.sql module pyspark.streaming module pyspark.ml package pyspark.mllib package ...
- 【python基础】之元组 集合 字典
元组 元组:元组和列表类似.但是元组中的元素是固定的(不能给一个元组添加,删除和替换元素以及重新排序) 1.创建元组 t1 = () #创建一个空元组 t2 = (1, 2, 3) t3 = tupl ...
- atom编辑器快捷键
挑来挑去,还是决定选择atom,做为我的编程编辑器. 下面是我总结的atom快捷键 //1.atomcmd+,; 设置cmd+h; 隐藏程序cmd+alt+h; 隐藏其他程序 //2.文件cmd+n; ...
- .Net程序员学用Oracle系列(11):系统函数(下)
1.聚合函数 1.1.COUNT 函数 1.2.SUM 函数 1.3.MAX 函数 1.4.MIN 函数 1.5.AVG 函数 2.ROWNUM 函数 2.1.ROWNUM 函数简介 2.2.利用 R ...
- Swift 2.2 多态和强制转换
写在前面: 写点东西,就是想告诉自己,有时间其实你也在前进着,快慢不说,至少没停下吧!该有的都会有的.不瞎BB了,说主题,3.0 的多态和继承. 总觉得继承好像也没什么太多的可说的了,在项目中用到的还 ...
- Java数组练习题小结
//2015/07/07 //Java数组小小练习题 /* 3. 写一个函数,计算一个整数数组的平均值 4. 自定义一个整数数组a,读入一个整数n,如果n 在数组中存在,则输出n 的下标:如果不存在, ...