目录
一.异常
异常: 代表程序出现问题
图解:
从Java文件------>字节码文件的过程就是编译(在这期间的异常就是编译时异常)
从字节码文件------->运行结果的过程就是运行(在这期间的异常就是运行时异常)
异常的处理方式:
1.JVM默认处理异常的方式:
(1)把异常的名称, 异常原因及异常出现的位置等信息输出在了控制台上
(2)程序停止执行, 异常下面的代码不会在执行了
2.自己处理(捕获异常)
格式:
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常处理的代码;
}
注意:
(1)只有出现catch里面的异常, 才会执行catch里面的代码
(2)如果try里面出现多个异常,那么需要写一样多的catch与之对应(如果异常之间存在父子关系, 那么父类要写在下面)(在JDK7之后,catch( )中可以同时捕获多个异常,中间用 | 隔开,表示要是遇到这两个异常采取同一种处理方案)
(3)如果try中遇到了问题,try下面的代码就不会执行了,它会创建异常的对象,然后就执行catch语句
目的: 当代码出现异常时, 可以让程序继续往下执行
代码示范:
public class Test2 { public static void main(String[] args) { int[] arr ={1,2,3,4,5,6}; try{ //可能出现异常的代码 System.out.println(arr[8]); }catch (ArrayIndexOutOfBoundsException e){ //如果出现了ArrayIndexOutOfBoundsException异常,如何处理 System.out.println("索引越界"); } System.out.println("是否能运行到这"); } }结果展示:
异常的常用方法:
public void printStackTrace( );
把异常的错误信息以红色字体输出在控制台(仅仅是打印信息, 不会停止程序的运行)
代码示范:
public class Test2 { public static void main(String[] args) { int[] arr ={1,2,3,4,5,6}; try { System.out.println(arr[8]); } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } System.out.println("是否能运行到这"); } }结果展示:
二.File
File对象就表示一个路径, 可以是文件的路径, 也可以是文件夹的路径
这个路径可以是存在的, 也允许是不存在的
1.File的三种构造方法
方法名称 说明
public File(string pathname) 根据文件路径创建文件对象
public File(string parent,string child) 根据父路径名字符串和子路径名字符串创建文件对象
public File(File parent,string child) 根据父路径对应文件对象和子路径名字符串创建文件对象
代码示范:
import java.io.File; public class Test3 { public static void main(String[] args) { //1.根据字符串表示的路径, 变成File对象 // \: 转义字符 // \\: 表示\ String str = "C:\\Users\\怪\\Desktop\\a.txt"; File f1 = new File(str); System.out.println(f1); //父级路径: C:\Users\怪\Desktop //子级路径: a.txt //2.父级路径和子级路径拼接 String parent = "C:\\Users\\怪\\Desktop"; String child = "a.txt"; //(1)第一种: 自动拼接(推荐) //File f2 = new File(parent,child); //(2)第二种 手动拼接 File f3 = new File(parent+"\\"+child); System.out.println(f3); //3.把一个File表示的路径和String表示路径进行拼接 File f4 = new File("C:\\Users\\怪\\Desktop"); String child1 = "a.txt"; File f5 = new File(f4,child1); System.out.println(f5); } }结果展示:
2.File的常见的成员方法
(1)判断, 获取类型的成员方法
方法名称 说明
public boolean isDirectory() 判断此路径名表示的File是否为文件夹
public boolean isFile() 判断此路径名表示的File是否为文件
public boolean exists() 判断此路径名表示的File是否存在
public long length() 返回文件的大小(字节数量)(不能计算文件夹的大小)
public String getAbsolutePath() 返回文件的绝对路径
public String getPath() 返回定义文件时使用的路径
public String getName() 返回文件的名称,带后缀
public long lastModified() 返回文件的最后修改时间(时间毫秒值)
代码示范:
import java.io.File; public class FileDemo1 { public static void main(String[] args) { File f1 = new File("C:\\Users\\怪\\Desktop\\a.txt"); //1.isDirectory() System.out.println(f1.isDirectory()); //2.isFile() System.out.println(f1.isFile()); //3.exists() System.out.println(f1.exists()); //4.length() (单位字节) long len = f1.length(); System.out.println(len); //5.getAbsoluteFile() System.out.println(f1.getAbsoluteFile()); //6.getPath() System.out.println(f1.getPath()); //7.getName() System.out.println(f1.getName()); //8.lastModified() System.out.println(f1.lastModified()); } }结果展示:
(2)创建, 删除类型的成员方法
方法名称 说明
public boolean createNewFile() 创建一个新的空的文件
public boolean mkdir() 创建单级文件夹
public boolean mkdirs() 创建多级文件夹(既可以创建单级文件夹也可以创建多级文件夹)
public boolean delete() 删除文件、空文件夹(删除直接消失,不会在回收站中)
createNewFile()的使用:mkdirs()的使用:
delete()删除文件(直接删除)
delete()删除文件夹(要为空文件夹)
(3)获取并遍历
public File[ ] listFiles( ) 获取当前该路径下所有内容
代码示范:
import java.io.File; public class FileDemo3 { public static void main(String[] args) { File f1 = new File("C:\\Users\\怪\\Desktop\\abc"); File[] filelist = f1.listFiles(); for (File file : filelist) { System.out.println(file); } } }结果展示: