java文件操作与异常机制
java文件操作与异常机制
?
一、java文件操作
?
1、java提供File类实现对文件的各种操作,通过创建并实例化File对象,利用方法创建文件,删除文件,判断文件是目录还是正式文件,文件系统的基本规则:
(1)文件名不带路径,但带有拓展名;
(2)同一目录下不存在相同的真实文件或者目录;
(3)相对目录:相对于程序运行时的目录的文件的相对路径
????绝对路径:从根目录开始的文件路径;
(4)例如C:\program and files\在程序中是C:\\program and files\\
?
2、File类的常用方法
??????(1)构造方法: File(File parent,String child);
???????????????????????? ? File(String pathname);
???????????????????????? ? File(String parent,String child);
?????????????????????????? File(URI uri)--->暂未使用
??????(2)常用方法: boolean? canRead()-->判断文件是否可读;
?????????????????????????? boolean? canWrite()-->判断文件是否可修改;
?????????????????????????? boolean? createNewFile()-->当不存在该文件时,创建一个文件;
?????????????????????????? boolean? delete()-->删除文件
?????????????????????????? String? getAbsolutePath()-->返回文件的绝对路径;
?????????????????????????? String getName()-->返回文件或目录的名称
?????????????????????????? File[] listFiles()-->取得文件下一级的所有文件和目录,以数组返回;
?????????????????????????? File[] listRoots()-->取得该文件的根目录;
???????(3)File应用——递归遍历系统中所有文件,代码如下:
?// 递归的方法
?public static void chaZhao(File file) {
?// 参数下一级文件数组
?File[] listArray = file.listFiles();
?if (null != listArray && listArray.length > 0) {
?????? for (int i = 0; i < listArray.length; i++) {
????????? ?f = listArray[i];
??????????String path = f.getAbsolutePath();
????????? if (f.isDirectory()) {
??????????????? 输出所有文件的绝对路径
??????????????? System.out.println(path);
??????????????? chaZhao(f);
????????? ?} else if (f.isFile()) {
???????????????????? System.out.println(path);
???????????? ?}
????????}
??} else {
???// System.out.println(path);
??}
?}
?
二、java异常机制理解
?
1、异常理解:导致程序出现中断的代码错误
2、程序的所有错误全部继承自java.lang.Throwable类,Throwable类的子类除了Exception异常类,还有Error错误类
3、异常的处理:
?????? (1)try? catch
??????????????????try{
??????????????????????可能出现异常的代码A
????????????????????? 如果没有异常,则跳出try catch,继续执行
????????????????????? }catch(Exception e){
???????????????????????????????? 如果出现异常,A之后的代码不在执行,直接执行此处的代码
?????????????????????? }
???????
(2)throw与throws
??????? throw用于方法体中抛出异常对象,在方法声明中用throws抛出异常,异常类必须是throw抛出的异常类或者其父类
?
(3)finally
不论是否出现错误,finally代码块中的代码都必须执行。
?