练习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类和时间类的两道综合练习的更多相关文章

  1. [19/03/16-星期六] 常用类_Date时间类&DateFormat类

    一.Date时间类 计算机中 以1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一) 用ong类型的变量来表示时间,如当前时刻数值:long  now =n ...

  2. Java日期时间API系列13-----Jdk8中java.time包中的新的日期时间API类,时间类转换,Date转LocalDateTime,LocalDateTime转Date等

    从前面的系列博客中可以看出Jdk8中java.time包中的新的日期时间API类设计的很好,但Date由于使用仍非常广泛,这就涉及到Date转LocalDateTime,LocalDateTime转D ...

  3. Java常用类之时间类

    JDK8之前日期时间API 1. java.lang.System类 2. java.util.Date类 3. java.text.SimpleDateFormat类 4. java.util.Ca ...

  4. java——String类,时间类,格式化

    日期类 格式化

  5. Java时间类从此变得清晰明了

    Java时间类 Java时间类分为Date 日期类和Calendar 日历类,相信很多小伙伴在初学时会对这个两个类的用法.区别以及有什么联系会感到疑惑,似乎懂了,但又不能具体说清,今天再带你来清晰的再 ...

  6. 日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结

    1.日期类,时间类,日期时间类 初步日期使用方法及格式转换方法(旧方法): 格式://Mon Jul 30 11:26:05 CST 2018             年月日时分秒    CST代表北 ...

  7. Java学习(正则表达式、Date类、DateFormat类、Calendar类)

    一.正则表达式 1.概念:英语:Regular Expression,在代码中常简写为regex.正则表达式,是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串. ...

  8. 【转】两道面试题,带你解析Java类加载机制(类初始化方法 和 对象初始化方法)

    本文转自 https://www.cnblogs.com/chanshuyi/p/the_java_class_load_mechamism.html 关键语句 我们只知道有一个构造方法,但实际上Ja ...

  9. 求计算两个时间的差(DateTime类和TimeSpan类)

    日期时间数据是项目设计过程中经常需要处理的信息,C#提供了DateTime类和TimeSpan类来处理日期时间数据.下面介绍说明Datetime类和TimeSpan类的使用 //初始化DateTime ...

随机推荐

  1. BNU Online Judge-34978-汉诺塔

    题目链接 http://www.bnuoj.com/bnuoj/problem_show.php?pid=34978 这题在比赛时AC了不过那时是根据测试数据  抱着来试一下的想法,没想就AC了,其实 ...

  2. Eclipse Sort Members默认之后恢复的方法

    alt+shift+s -- > m CRLF 默认一种排序之后,对话框就再也出不来了: 使用这样的方法: window - preference - Java | Java dialogs | ...

  3. 学习计划(一)——JavaScript

    一:与前端之缘 大一时除了上课和社团外不知道要学点什么,但是又不想睡觉打游戏,常常就是啥都想学,photoshop,premiere,After Effects都学,但始终没有明确的目标. 大二时一直 ...

  4. MVC分页控件

    1.下载MvcPager.dll文件并引用到MVC项目中 2.在控制器中引用命名空间using Webdiyer.WebControls.Mvc; 3.获取数据集合,数据的总记录数(数据集合有多少条数 ...

  5. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  6. 反汇编看c++引用

    继续反汇编系列,本次使用vc2008在x86体系下分析c++中的引用. 定义一个引用类型和将一个变量转换成引用类型一样吗? 引用比指针安全,真的是这样吗,对引用不理解的话比指针还危险. 为什么要用常量 ...

  7. oozie配置安装与原理

     概述 当前开源的hadoop任务工作流管理主要有oozie和Azkaban,本文先介绍oozie的配置安装与基本运行原理. 配置安装 (参考https://segmentfault.com/a/11 ...

  8. Spring的bean管理(注解)

    前端时间总是用配置文件  内容太多 下面认识一下注解 注解是什么? 1代码里面的特殊标记,使用注解可以完成功能 2注解写法@XXX 3使用注解可以少些很多配置文件 Spring注解开发准备 注解创建准 ...

  9. [solr] - solr5.2.1环境搭建 - 使用solr自带的jetty服务器

    solr除了使用tomcat作为容器外,还可以使用其他的常用容器,比如jetty,jboos等,而且solr自身就自带jetty服务器,那么现在就solr自带的jetty服务器进行安装操作.由于sol ...

  10. ios跳转到系统设置

    在项目中,我们经常会碰到使用位置的需求.当用户设置app不允许使用位置的时候,最好的用户体验就是直接调转到系统的位置设置界面,进行设置. 第一 跳转到自己项目(在需要调转的按钮动作中添加如下的代码,就 ...