操作文件 File类

属性

        

修饰符属性说明
static StringpathSeparator依赖于系统的路径分隔符,String
类型的表⽰
static charpathSeparator依赖于系统的路径分隔符,char
类型的表⽰

        在Windows中,路径分隔符支持"/"和"\",Linux分隔符仅支持"/".

构造方法

方法说明
File(String pathname)根据⽂件路径创建⼀个新的File实例,路径可以是绝对路径或者相对路径.
File(File parent, String child)根据父目录加孩子文件路径,创建一个File实例.
File(String parent, String child)根据父目录加孩子文件路径,创建一个File实例.父目录用路径表示.

对于相对路径:

        1.如果在IDEA中运行项目,那么工作目录就是项目所在的目录.

        2.如果代码打包为jar包,那么工作目录就是jar包所在目录.

主要方法

        

修饰及返回值类型方法名说明
StringgetParent()返回FIle对象的父目录文件路径
StringgetName()返回File对象的纯文件名称
StringgetPath()返回FIle对象的文件路径
StringgetAbsolutePath()返回FIle对象的绝对路径
StringgetCanonicalPath()返回FIle对象的修饰过的绝对路径
booleanexists()判断FIle对象描述的文件是否存在
booleanisDirector()判断File对象描述的文件是否是一个目录
booleanisFile()判断FIle对象描述的文件是否是一个文件
booleancreateNewFile()根据File对象创建一个空文件,创建成功返回true.
booleandelete()删除File对象只想的文件,删除成功返回true.
voiddeleteOnExit()在JVM结束时,删除File对象所指向的文件.
String[]list()返回File目录下所有的文件名.
File[]listFile()返回File目录下所有的文件,用File对象表示.
booleanmkdir()创建FIle对象所描述的目录.
booleanmkdirs()创建FIle对象所描述的目录,如果必要则创建中间的目录.
booleanrenameTo(File dest)进行文件重命名,也可以视为剪切\粘贴操作.
booleancanRead()判断用户是否有可读权限.
booleancanWrite()判断用户是否有可写权限.

        getPath(),getAbsolutePath()与getCanonicalPath()

        这三个方法都是返回文件的路径,但是结果略有差异.getCanonicalPath在使用时可能会抛出IOException异常.

public static void main(String[] args) throws IOException {
        File file = new File("../T.txt");
        System.out.println("getPath() = " + file.getPath());
        System.out.println("getAbsolutePath() = " + file.getAbsolutePath());
        System.out.println("getCanonicalPath() = " + file.getCanonicalPath());
    }

        在使用相对路径时,AbsolutePath返回的是针对当前目录解析相对路径后获得的路径,而CanonicalPath返回的是文件的绝对路径.

        createNewFIle(),delete()与deleteOnExit()

public static void main(String[] args) throws IOException {
        File file = new File("T.txt");
        System.out.println(file.exists() ? "文件存在" : "文件不存在");
        System.out.println(file.createNewFile() ? "文件创建成功" : "文件创建失败");
        System.out.println(file.exists() ? "文件存在" : "文件不存在");
        System.out.println(file.delete() ? "文件删除成功" : "文件删除失败");
        System.out.println(file.exists() ? "文件存在" : "文件不存在");
    }

createNewFile()在使用时可能会抛出IOException.

public static void main(String[] args) throws IOException, InterruptedException {
        File file = new File("T.txt");
        System.out.println(file.exists() ? "文件存在" : "文件不存在");
        System.out.println(file.createNewFile() ? "文件创建成功" : "文件创建失败");
        file.deleteOnExit();
        System.out.println(file.exists() ? "文件存在" : "文件不存在");
    }

对于deleteOnExit(),在JVM未结束前,并不会删除文件.

mkdir()与mkdirs()

        mkdir与mkdirs的主要区别在于能否创建中间目录.

public static void main(String[] args) {
        File file = new File("./aaa");
        file.mkdir();
    }

  

File file = new File("./bbb/ccc");
        file.mkdir();

        File file = new File("./bbb/ccc");
        file.mkdirs();

当使用mkdir时,如果目录需要中间目录才能创建,那么就无法成功创建目录.而使用mkdirs则可以创建中间目录与目标目录.

renameTo()

        File file = new File("./T.txt");
        File dest = new File("./1.txt");
        file.renameTo(dest);

成功将T.txt重命名为1.txt.

        File file = new File("./1.txt");
        File dest = new File("./src/IO/1.txt");
        file.renameTo(dest);

成功将1.txt移动到指定位置.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值