文件操作与简单的异常操作
我们知道在计算机中,最常见的就是“文件”,有些文件里面还包含着文件,有些文件则是可以执行的文件,那么什么是文件。
??? 先阐述一下文件系统的基本规则:
??????? 1.文件的全面包含“路径名”和“拓展名”,单独讲一个文件名的时候,是不带路径名的。
??????? 2.同一目录下不可能存在同名的文件。
??????? 3.相对目录是以“路径分隔符”开头的文件”;
????????? 绝对目录则是不带“路径分隔符”的文件,如“D:/qly/..”
????????? 当前目录是指相对与程序运行时的目录算起的相对路径;如“src”;
??????? 4.注意在不同系统中目录分隔符及路径分隔符不一定相同,如liunx中分别为“/”及“:”;win平台上分别为“\”及“;”。
????????? (因此为了使自己的程序有更好的兼容性,建议将这些分隔符用一定的字符代替,然后在按照系统规则“翻译”成系统自带的分隔符。)
?????????
???
??? 然后我们来介绍一下java中位于java.io包下的File类。通过创建File对象的方法来“增、删、改、查”文件。
??? File类的属性:
?????? public static String pathSeparator
?????? public static String separator
?????? 分别表示了当前操作系统的“路径分隔符”与“名字分隔符”,一般使用他们来代替拜编码中的分隔符(为更好的兼容性);
??? File类的构造器:不实例化成一个实际的文件,仅是生成了一个File类型的对象,当调用到这个对象的时候,这个对象才会关联到磁盘上某个文件。
??? File类中的重要方法:
?????? blooean exists():File所指向的对象是否存在
?????? String getName():返回文件名(不带路径)
?????? boolean isDirectory():File所指向的对象是否是目录
?????? boolean isFile():File所指向的对象是否是文件
?????? File[] listFiles():当前文件下一级的所有目录与文件作为一个数组返回
?????? static File[]listRoots():返回根目录所在的盘符
?????? boolean mkdir():根据File对象的名字创建一个目录
?????? boolean mkdirs():如果File对象名字有多级目录。可以一次性创建;
?????? boolean delete():从磁盘上删除File对象所指向的文件
?????? boolean createNewFile():根据File对象的名字创建一个新的真实文件;
?
??? 接着插入一个算法的概念:递归。
??? 可以这么想:递归其实与一般方法没有太大不同,只是方法名与本身的方法名相同而已,这样与方法内的算法更加相同。
??? 实例:用递归算法搜索文件(因为在一个目录下我们不知道其有多少级目录和每级目录的文件个数):
???
????
java中的异常机制:
??? java中的异常概念也被设计成一个类,即java.lang包下的Exception类。平时所见的异常一般是其子类。(注意,异常不是错误,不是error)
??? 当程序出错时,我们可以在代码中得到一个Exception对象,如try...catch块。
??? 简单介绍下try...catch块:
??????? try{
???????????? 可能抛出异常的代码....
??????????? //如果没有问题处理,则执行下面的代码
??????????? (A)其他计算代码
??????????? }catch(Exception ef){
??????????? //如果出现异常后执行的代码
??????????? (B)出了异常的计算代码?
??????????? }
????????
??? 注意:
??????? //如果代码执行成功,程序流程正常,(B)块不好执行;
??????? //如果(A)前面的代码有异常情况,(A)处不执行;
??????? //ef.printStackTrace()方法可以打印出详细情况
??????? //注意{}内的变量只在{}内有效;
??????? //如果方法有返回值,那么try与catch内部都须有返回值;