File类概述

来源:互联网 发布:photoshop免费下载mac 编辑:程序博客网 时间:2024/05/18 02:24

㈠ File类:用于描述文件系统中的一个文件或目录。

 

㈡ File类的功能:我们通过File可以获取文件或目录的名字,大小,修改日期等信息。但是不能对文件内容进行访问

    ① File.separator 是个常量,用于解决操作系统间目录分隔符之间的差异。

    ② 路径中的"."代表当前目录。

    ③ 构造方法:File(String path),根据给定的路径,创建File对象来描述这个文件或目录。

    例如:

        File file = new File("."+File.separator+"file.txt");        File file = new File("file.txt");// 不加 "." ,默认是在当前目录下

 

    ④ 重载构造方法:在指定目录中创建文件或目录

        File file = new File(File dir,String name);

        参数1:描述父目录(上级目录)的File对象

        参数2:当前文件或目录的名字

 

㈢ File的常用方法

long length(); // 获取文件的大小 ,以字节为单位.long lastModified(); // 获取文件的最后修改时间,毫秒值.String getName(); // 获取文件或目录的名字.String getPath(); // 获取当前文件或目录的相对路径,以字符串形式返回.String getAbsolutePath(); // 获取当前文件或目录的绝对路径.String getCanonicalPath(); // 获取操作系统标准的绝对路径,但是该方法需要我们捕获异常.boolean exists(); // 判断当前File对象描述的文件或目录是否存在.boolean isFile(); // 判断当前File对象描述的是否为一个文件.boolean isDirectory(); // 判断当前File对象描述的是否为一个目录.boolean canRead(); // 判断当前文件是否可读.boolean canWrite(); // 判断当前文件是否可写.

 

 

㈣ 使用File创建文件或目录

    ① 创建目录需要注意的几个问题

        1) 指定想要创建目录的位置以及目录名称,并创建对应的File对象

        2) 创建前确保该目录是不存在的

        3) 通过File对象创建它

        4) 当我们创建该对象后,并不代表他描述的目录一定存在,这只是java的一个对象,在内存中存在的。是否在硬盘上存在,要进行判断。

 

    ② 创建文件或目录的方法

    boolean mkdir():创建File描述的目录。

    boolean createNewFile():创建File描述的文件

    boolean mkdirs():创建目录,同时创建所有不存在的上级目录。在创建多级目录时,应选取使用mkdirs()方法,若在多级目录下创建文件,应先确保该文件所处的目录存在后,再创建文件。

 

㈤ 删除文件或目录

    ① 删除给定的File对象需要注意的几个问题

        1) 要先判断它是一个文件还是目录,

        2) 若是文件则可以直接删除,

        3) 若是目录,则要先获取其所有子项,然后逐个删除后,再删除这个目录。

 

    ② 删除文件或目录的方法

    boolean delete():删除文件或目录。删除目录时,要确保该目录下没有任何子项才可以成功删除目录。

 

㈥ 查看目录下的内容

String[] list():返回当前目录下子项的名字

File[] listFiles():获取当前目录下的所有子项,每一个子项用一个File对象描述,最终以数组形式返回。

File[] listFiles(FileFilter filter):重载的listFiles()方法,可以传入一个过滤器,用来返回当前目录下满足过滤器要求的所有子项。

 

㈦ File代码示例

    ① 给定一个File对象,若是目录,输出该目录下的所有子项,子项若是目录,同样递归输出其子项。按如下样式输出:

    -src

    --java

    ---XXX.java

public class FileShows {        public static void main(String[] args) {                File file = new File("src");                showsFile(file, 1);        }        public static void showsFile(File file, int i){//i 代表该方法被调用的次数,从0开始为第一次。                String str = "";                for(int j=0;j<i;j++){                        str += "-";                }                System.out.println(str + file.getName());                i++;//方法调用一次,i自加1,下次调用时str增加一个“-”。                if(file.isDirectory()){                        for(File sub : file.listFiles()){                                showsFile(sub, i);                        }                }        }}

 

    ② 递归删除目录下的子目录

public class DeleteFile {        public static void main(String[] args) {                File dir = new File("."+File.separator+"a");                deleteFile(dir);        }        // 删除给定的文件或目录        public static void deleteFile(File file){                /**                 * 要想删除给定的File对象,要先判断它是一个文件还是目录                 * 若是文件,则可以直接删除,                 * 若是目录,则要先获取其所有子项,然后逐个删除后,再删除这个目录                 */                //若是目录                if(file.isDirectory()){                        //先删除所有子项                        File[] subs = file.listFiles();                        for(File sub : subs){                                deleteFile(sub);                        }                                }                //删除当前file对象描述的文件或目录                file.delete();        }}

 

    ③ 创建文件

public class FileMkDirDemo {        public static void main(String[] args) throws IOException {                /**                 * 创建目录                 * 1:指定想要创建目录的位置以及目录名称,并创建对应的File对象                 * 2:创建前确保该目录是不存在的                 * 3:通过File对象创建它                 */                //1                File dir = new File("."+File.separator+"mydir");                //2                if(!dir.exists()){                        //3                        dir.mkdir();                }                //输出目录路径                System.out.println(dir.getCanonicalPath());                 /**                 * 在mydir目录中创建文件test.txt,创建文件的步骤和创建目录步骤一致                 */                //1                File file =                         new File("." + File.separator +"mydir" + File.separator +"test.txt");                /**                 * 重载构造方法                 * 在指定目录中创建文件或目录                 * 参数1:描述父目录(上级目录)的File对象                 * 参数2:当前文件或目录的名字                 */                // File file = new File(dir,"text.txt");                //2                if(!file.exists()){                        //3                        file.createNewFile();                }                System.out.println(file.getCanonicalPath());                 /**                 * 在当前目录下创建 a/b/c/d,多级目录                 */                File mdir = new File(                                "." + File.separator +                                "a" + File.separator +                                "b" + File.separator +                                "c" + File.separator +                                "d");                                if(!mdir.exists()){                        //使用mkdir创建目录,必须保证上级目录要存在                        // mdir.mkdir();                        //mkdirs创建目录,会自动将不存在的上级目录创建出来                        mdir.mkdirs();                }                System.out.println("目录创建完毕");        }}

 

0 0
原创粉丝点击