标签:
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