File的常见成员方法(创建,删除)

一.File的常见成员方法(创建,删除):


二.方法的代码实现:

1.createNewFile方法->创建一个新的空的文件:

如上图直接调用createNewFile方法会报错,处理方案如下:

本例选择第一个:

package com.itheima.a01myfile;
​
import java.io.File;
import java.io.IOException;
​
public class FileDemo4 {
    public static void main(String[] args) throws IOException { //声明了一个异常
        //1.createNewFile方法->创建一个新的空的文件
        File f1=new File("D:\\JavaTest\\c.txt");
        boolean b = f1.createNewFile();
        System.out.println(b);//运行结果为true
    }
}
方法解读:createNewFile方法返回值为布尔类型,返回true代表文件创建成功,返回false代表文件创建失败

本例中D盘下的JavaTest文件夹存在,而且在D盘下的JavaTest文件夹下此时没有要创建的文件c.txt,执行本例的代码后即可创建文件c.txt

注:

1.在路径存在的情况下:若要创建的文件已经存在会导致要创建的文件创建失败,createNewFile方法也就返回false(代

码不报错,只是文件创建不了)。

2.在路径(父级路径)不存在的情况下:代码会直接报错,createNewFile方法会有异常IOException

3.在路径存在的情况下:(在要创建的不存在下)若要创建的没有后缀,则会创建一个没有后缀的文件,不是文件夹,更不会报错

package com.itheima.a01myfile;
​
import java.io.File;
import java.io.IOException;
​
public class FileDemo4 {
    public static void main(String[] args) throws IOException { //声明了一个异常
        //1.createNewFile方法->创建一个新的空的文件
        File f1=new File("D:\\JavaTest\\ddd");
        boolean b = f1.createNewFile();
        System.out.println(b);//运行结果为true
    }
}

-->createNewFile方法创建的一定是文件,如果没有后缀名,则创建一个没有后缀的文件。


2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)方法-->创建单级文件

未执行mkdir方法前:

package com.itheima.a01myfile;
​
import java.io.File;
import java.io.IOException;
​
public class FileDemo4 {
    public static void main(String[] args) throws IOException { //声明了一个异常
        /*//1.createNewFile方法->创建一个新的空的文件
        File f1=new File("D:\\JavaTest\\ddd");
        boolean b = f1.createNewFile();
        System.out.println(b);//运行结果为true*/
​
        //2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
        File f2=new File("D:\\JavaTest\\ddd");
        boolean b = f2.mkdir();
        System.out.println(b);
    }
}

执行mkdir方法后b的结果为false,虽然D:\JavaTest\ddd路径存在,但创建失败,这是操作系统导致的,

在Windows操作系统中路径必须是唯一的,不能重复,此时创建的文件夹ddd已有的文件重名,因此无法创建

把路径改为D:\JavaTest\eee,此时唯一,即可创建文件夹eee

package com.itheima.a01myfile;
​
import java.io.File;
import java.io.IOException;
​
public class FileDemo4 {
    public static void main(String[] args) throws IOException { //声明了一个异常
        /*//1.createNewFile方法->创建一个新的空的文件
        File f1=new File("D:\\JavaTest\\ddd");
        boolean b = f1.createNewFile();
        System.out.println(b);//运行结果为true*/
​
        //2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
        File f2=new File("D:\\JavaTest\\eee");
        boolean b = f2.mkdir();
        System.out.println(b);
    }
}

细节:

1.Windows操作系统中路径是唯一的,如果当前路径已经存在或者有误,则创建失败,返回false

2.mkdir方法只能创建单级文件夹,无法创建多级文件夹,如下:

package com.itheima.a01myfile;
​
import java.io.File;
import java.io.IOException;
​
public class FileDemo4 {
    public static void main(String[] args) throws IOException { //声明了一个异常
        /*//1.createNewFile方法->创建一个新的空的文件
        File f1=new File("D:\\JavaTest\\ddd");
        boolean b = f1.createNewFile();
        System.out.println(b);//运行结果为true*/
​
        //2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
        File f2=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
        boolean b = f2.mkdir();
        System.out.println(b);
    }
}

上述代码中b的值为false。


3.mkdirs方法--> 创建多级文件夹(也可以创建单级文件夹):

未执行mkdirs方法前:

执行mkdirs方法后:

package com.itheima.a01myfile;
​
import java.io.File;
import java.io.IOException;
​
public class FileDemo4 {
    public static void main(String[] args) throws IOException { //声明了一个异常
        /*//1.createNewFile方法->创建一个新的空的文件
        File f1=new File("D:\\JavaTest\\ddd");
        boolean b = f1.createNewFile();
        System.out.println(b);//运行结果为true*/
​
        /*//2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
        File f2=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
        boolean b = f2.mkdir();
        System.out.println(b);*/
​
        //3.mkdirs 创建多级文件夹
        File f3=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
        boolean b = f3.mkdirs();
        System.out.println(b);
    }
}
​

注:

mkdirs方法也可以创建单级文件夹,如下:

未执行mkdirs方法前:

执行mkdirs方法后:

package com.itheima.a01myfile;
​
import java.io.File;
import java.io.IOException;
​
public class FileDemo4 {
    public static void main(String[] args) throws IOException { //声明了一个异常
        /*//1.createNewFile方法->创建一个新的空的文件
        File f1=new File("D:\\JavaTest\\ddd");
        boolean b = f1.createNewFile();
        System.out.println(b);//运行结果为true*/
​
        /*//2.mkdir(两个单词的缩写:make Directory,文件夹也叫目录-->创建目录即创建文件夹)
        File f2=new File("D:\\JavaTest\\JavaTest\\eee\\ccc");
        boolean b = f2.mkdir();
        System.out.println(b);*/
​
        //3.mkdirs 创建多级文件夹
        File f3=new File("D:\\JavaTest\\ggg");
        boolean b = f3.mkdirs();
        System.out.println(b);
    }
}

mkdirs方法既可以创建多级文件夹,也可以创建单级文件夹,所以mkdir方法可以不用,但mkdir方法存在的最大意义在于mkdirs方法底层要用到mkdir方法-->所以mkdirs方法可以创建单级文件夹,如下:


4.delete方法-->删除文件,空文件夹:

未执行delete方法前:

a.删除文件:

执行delete方法后:

package com.itheima.a01myfile;
​
import java.io.File;
​
public class FileDemo5 {
    public static void main(String[] args) {
        //1.创建File对象
        File f1=new File("D:\\JavaTest\\c.txt");
​
        //2.删除
        boolean b = f1.delete();
​
        //3.打印结果
        System.out.println(b);
    }
}

删除成功,而且不会到回收站,删除就真的彻底删除了。

b.删除非空文件夹:(本例中JavaTest为非空文件夹)
package com.itheima.a01myfile;

import java.io.File;

public class FileDemo5 {
    public static void main(String[] args) {
        //1.创建File对象
        File f1=new File("D:\\JavaTest\\JavaTest");

        //2.删除
        boolean b = f1.delete();

        //3.打印结果
        System.out.println(b);//运行结果为false
    }
}

执行代码后:

上述代码表明delete方法不能删除非空文件夹。

c.删除空文件夹:(本例中eee为空文件夹)
package com.itheima.a01myfile;

import java.io.File;

public class FileDemo5 {
    public static void main(String[] args) {
        //1.创建File对象
        File f1=new File("D:\\JavaTest\\eee");

        //2.删除
        boolean b = f1.delete();

        //3.打印结果
        System.out.println(b);//运行结果为true
    }
}

执行代码后:

空文件夹eee删除成功,并且不会进回收站,删除了就真的彻底删除了。

d.注:

细节:如果删除的是文件,则直接删除,不走回收站。

如果删除的是空文件夹,则直接删除,不走回收站。

如果删除的是非空文件夹,则删除失败。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值