标签:
import java.io.File;
/*
* 目的:从根目录遍历,找出该盘下所有以.avi以及.rmvb、.mp4结尾的文件
*
* 1、遍历目录
* 是文件:
* 判断:
* 是:.avi或者.rmvb或者.mp4结尾的文件,输出文件地址以及文件名
* 不是:忽略
* 是目录:重复步骤1
*
*/
public class FileDemo {
public static void main(String[] args) {
File F = new File("D:\\");
File [] arrayFile = F.listFiles();
for(File file:arrayFile){
recursionFind(file);//调用函数处理
// System.out.println(file);
}
System.out.println("查找结束");
}
private static void recursionFind(File file) {
// TODO Auto-generated method stub
if(file.isFile()){//判断是否为文件
if (file.getName().endsWith(".avi")||file.getName().endsWith(".rmvb")||file.getName().endsWith(".mp4")) {
System.out.println(file.getPath()+"------"+file.getName());
}
}
else if(file.isDirectory()){//判断是否为目录 注①
File [] dir = file.listFiles(); //获取此文件夹下file列表
if(dir!=null){//判断是否为空,如果不为空则继续,为空会报错 NullPointerException 注②
for(File sonfile:dir){
// if(sonfile!=null){//判断是否为空,如果不为空则继续,为空会报错 NullPointerException
recursionFind(sonfile);
// }
}
}
}
}
}
注①:isFile()与isDirectory()两个判断过后有第三种可能。


注②:目录下为空指针,C盘下此类目录尤其多


——————————————————————————————————————————————————————————————————————————————
File类的功能
A:创建功能
public boolean createNewFile()创建新文件
public boolean mkdir() 创建新目录
public boolean mkdirs() 创建新目录,允许目录下面有目录
B:删除功能
public boolean delete() 删除目录,如果目录中有内容,则删除失败
C:重命名功能
public boolean renameTo(File dest)重命名文件,dest为重命名的名字,可以给出绝对路径,作为剪切功能使用
D:判断功能
public boolean isDirectory()判断是否为一个目录
public boolean isFile()判断是否为一个文件
public boolean exists()判断文件是否存在
public boolean canRead()判断是否可读
public boolean canWrite()判断是否可写
public boolean isHidden()判断是否为隐藏文件
E:获取功能
public String getAbsolutePath()获取绝对路径
public String getPath()//获取路径
public String getName()//获取文件名
public long length()//获取文件大小(单位为字节)
public long lastModified()//获取最后一次修改的时间,返回的是一个long型数值time
Date date = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String s = sdf.format(date);
System.out.println(s);//获取到我们能看懂的时间
F:高级获取功能
public String[] list()//返回一个字符数组,此目录下的文件名
public File[] listFiles()//返回此目录下的文件列表
G:过滤器功能
查询API
————————————————————————————————————————————————————————————————————————————
程序的异常:Throwable
严重问题:Error 此类问题我们不能解决,这种问题一般很严重,例如:内存泄漏
一般问题:Exception
编译期问题:不是RuntimeException及其子类的异常必须进行处理,因为此类异常不处理,编译就不能通过,无法运行。
运行期问题:RuntimeException及其子类,这类问题一般是代码不够严谨造成的,需要修正代码。
异常的处理:
JVM的默认处理
把异常的名称,原因,位置等信息输出到控制台,但是程序不再继续执行。
程序员处理
try...catch...finally
自己编写处理代码,后面的程序可以继续执行
throws
把自己无法处理的问题在方法上声明,让调用者知道。
Throws和Throw的区别
Throws
用在方法声明后面,跟的是异常类名
可以跟多个异常类名,用逗号隔开
表示抛出异常,由该方法的调用者来处理
throws表示出现异常的一种可能性,该异常不一定发生
Throw
用在方法体内,跟的是异常对象名
只能抛出一个异常对象名
表示抛出异常,由方法体内的语句处理
Throw则是抛出了异常,执行Throw则一定抛出了某种异常
finally,final,finalize的区别
final:最终的意思,可以修饰类,成员变量,成员方法
修饰类,该类不能被继承
修饰变量,该变量是常量
修饰方法,该方法不能被重写
finally:是异常处理的一部分,用于释放资源
一般来说,代码肯定会执行,特殊情况:在执行finally之前jvm推出了
finalize:是Objective类的一个方法,用于垃圾回收
下面的代码值得好好分析:在执行finally之前,return返回路径已经形成,即时执行finally中的语句,return的值依然不变,但是如果在finally中添加return语句,情况则不一样。

标签:
原文地址:http://www.cnblogs.com/heshengbang/p/4861725.html