File 类及其方法介绍

File 类

File 类包含了获得一个文件或者目录的属性,以及对文件或目录进行更名和删除的方法。(但是不包含读写文件内容的方法)

在文件系统下,每个文件都存放在一个目录下。绝对文件名是由文件名和它的完整路径以及驱动器字母组成。绝对文件名是依赖机器的。相对文件名是相对于当前工作目录的。对于相对文件名而言,完整目录是被忽略的。

在 Windows 中目录的分隔符是反斜杠(\)。但是在 Java 中,反斜杠被用作转义字符标识,所以目录分隔符应该写作两个连续的反斜杠(\\)。

File 类中的方法介绍

  • File(pathname: String)

    为一个指定的路径名创建一个 File 对象。路径名可能是一个目录或者一个文件。

  • File(parent: String, child: String)

    在目录 parent 下创建一个子路径的 File 对象,子路径可能是一个目录或者一个文件。

  • File(parent: File, child: String)

    在目录 parent 下创建一个子路径的 File 对象,parent 是一个 File 对象。

    File 的实例是文件或者目录对象,而不是文件和目录本身。

  • exists(): boolean

    File 对象代表的文件或者目录存在,返回 true.
    [外链图片转存失败(img-zd2ZbTOf-1564386326220)(6C554EDF3BBD45D7892D90BDB7048D4D)]

    public class TestFile {
    	public static void main(String[] args) {
    		String path = "D:\\ioDirectory";
    		File file = new File(path);
        	System.out.println(file.exists()); // true
        	File file1 = new File(path, "count.txt");
        	System.out.println(file1.exists()); // true
        	File file2 = new File(file, "count.txt");
        	System.out.println(file2.exists()); // true
        	File file3 = new File(file, "count.jpg");
        	System.out.println(file3.exists()); // false
    	}
    }
    
  • canRead(): boolean

    File 对象代表的文件或者目录存在且是可读的,返回 true.

  • canWrite(): boolean

    File 对象代表的文件或者目录存在且是可写的,返回 true.

  • isDirectory(): boolean

    File 对象代表的是一个目录,返回 true.

  • isFile(): boolean

    File 对象代表的是一个文件,返回 true.

  • isAbsolute(): boolean

    File 对象是采用绝对路径创建的,返回 true.

  • isHidden(): boolean

    如果 File 对象代表的文件是隐藏的,返回 true。隐藏的确切定义是系统相关的。

    public class TestFile {
        public static void main(String[] args) {
        	String path = "D:\\ioDirectory";
        	File file = new File(path);
        	System.out.println(file.canRead()); // true
        	System.out.println(file.canWrite()); // true
        	System.out.println(file.isDirectory()); // true
        	System.out.println(file.isFile()); // false
        	System.out.println(file.isAbsolute()); // true
    		System.out.println(file.isHidden()); // flase
        	File file1 = new File(file, "count.txt");
        	System.out.println(file1.isFile()); // true
    	}
    }
    
  • getAbsolutePath(): String

    返回 File 对象代表的文件或者目录的完整绝对路径。

  • getCanonicalPath(): String

    和 getAbsolutePath() 返回相同,除了从路径中去除冗余的名字。

  • getName(): String

    返回 File 对象代表的目录或者文件名的最后名字。

  • getPath(): String

    返回 File 对象代表的完整的文件或者路径名。

  • getParent(): String

    返回 File 代表的当前目录或者文件的完整父目录。

    public class TestFile {
    	public static void main(String[] args) throws IOException {
    		String path = "D:\\ioDirectory";
    		File file = new File(path);
    		File file1 = new File(file, "count.txt");
    		System.out.println(file1.getAbsolutePath()); // D:\ioDirectory\count.txt
    		System.out.println(file1.getCanonicalPath()); // D:\ioDirectory\count.txt
    		System.out.println(file1.getName()); // count.txt
    		System.out.println(file1.getPath()); // D:\ioDirectory\count.txt
    		System.out.println(file1.getParent()); // D:\ioDirectory
    		System.out.println(file1.getParentFile()); // D:\ioDirectory
    	}
    }
    
  • lastModified(): long

    返回文件的最后修改时间。

  • length(): long

    返回文件的大小,如果不存在或者是一个目录的话,返回 0.

  • listFile(): File[]

    返回一个目录 File 对象下面的所有文件。
    [外链图片转存失败(img-pnV89Ns0-1564386326223)(CA56A986CAD044A4B0CB20CBA46D0851)]

    public class TestFile {
        public static void main(String[] args) throws IOException {
        	String path = "D:\\ioDirectory";
        	File file = new File(path);
        	File file1 = new File(file, "count.txt");
    		System.out.println(file.lastModified());
    		System.out.println(new Date(file1.lastModified()));
    		System.out.println(file1.length());
    		File[] files = file.listFiles();
    		for (File file2 : files) {
    			System.out.print(file2.getName() + "\t");
    		}
    		System.out.println();
    	}
    }
    
  • delete(): boolean

    删除 File 对象代表的文件或者目录,如果删除成功,返回 true.

  • renameTo(dest: File): boolean

    将该 File 对象代表的文件或者目录更名为 dest 中指定的名字。如果操作成功,返回 true.

  • mkdir(): boolean

    创建该 File 对象代表的目录。如果目录创建成功,则返回 true.

  • mkdirs(): boolean

    和 mkdir() 相同,除开在父目录不存在的情况下,将和父目录一起创建。
    在这里插入图片描述

    public class TestFile {
    	public static void main(String[] args) throws IOException {
    		String path = "D:\\ioDirectory";
    		File file = new File(path);
    		File[] files = file.listFiles();
    		for (File file1 : files) {
    			// count.txt    test.txt     test1.txt
    			System.out.print(file1.getName() + "\t");
    		}
    		System.out.println();
    		File test = new File(file, "test.txt");
    		if (test.delete()) {
    			// test.txt 被删除 
    			System.out.println(test.exists()); // false
    		}
    		
    		File test1 = new File(path, "test1.txt");
    		if (test1.renameTo(new File(path, "rename.txt"))) {
    			// 还是原来的 test1.txt
    			System.out.println(test1.getName());
    		}
    		files = file.listFiles();
    		for (File file1 : files) {
    			// count.txt    rename.txt
    			System.out.print(file1.getName() + "\t");
    		}
    	}
    }
    
    count.txt	test.txt	test1.txt	
    false
    test1.txt
    count.txt	rename.txt	
    


    注意:

  • 使用了 file.renameTo(file1: File) 方法之后,file 对象并没有发生改变。所以 file.getName() 得到的结果仍然是重命名之前的 name. 但是实际的文件或者目录名称已经发生了改变。

  • length(): long 方法的返回值单位是字符长度。

  • lastModified(): long 返回的是时间戳,可以根据这个返回值转换成想要的时间格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值