JAVA-File

路径:

相对路径 和 绝对路径(带盘符):
JAVA-File_第1张图片
JAVA-File_第2张图片


  • File对象就表示一个路径,可以是一个文件的路径,也可以示文件夹的路径
  • 这个路径 可以存在 或 不存在

File对象的创建方式:三种构造方法

JAVA-File_第3张图片
后两种其实就是实现了拼接
代码演示:

public class Test01 {
    public static void main(String[] args) {
    //WINDOWS路径"D:\OneDrive\桌面\aaa.txt"

    //注意 \ 是转义字符,要在用一个 \ 来转义

    //1.将字符串表示的路径变成file对象
    String file="D:\\OneDrive\\桌面\\aaa.txt";
    File f1 = new File(file);
    System.out.println(f1);


    //2.把父级路径和子级路径进行拼接
    String parent="D:\\OneDrive\\桌面";
    String child="aaa.txt";
    File f2=new File(parent,child);
    System.out.println(f2);

    //3.把父级文件对象和子级字符串路径进行拼接
    File parent1=new File("D:\\OneDrive\\桌面");//文件对象
    String child1="aaa.txt";//字符串路径
    File f3=new File(parent1,child1);
    System.out.println(f3);

    }
}

File常见成员方法:

分为:
判断、获取
JAVA-File_第4张图片
前三个是判断、后五个是获取

判断方法代码演示:

演示准备:
1.
JAVA-File_第5张图片
2.进入aaa
image.png
3.有三个文件夹、两个文件
JAVA-File_第6张图片

public class Test01 {
    public static void main(String[] args) {
/*
public boolean isDirectory()    判断此路径名表示的File是否为文件夹
public boolean isFile()        	判断此路径名表示的File是否为文件
public boolean exists()         判断此路径名表示的File是否存在

*/

        File f1=new File("E:\\aaa\\ccc");
        System.out.println(f1.isDirectory());//true
        System.out.println(f1.isFile());//false
        System.out.println(f1.exists());//true

        System.out.println("------------------------");
        File f2=new File("E:\\aaa\\aaa.txt");
        System.out.println(f2.isDirectory());//false
        System.out.println(f2.isFile());//true
        System.out.println(f2.exists());//true

        System.out.println("------------------------");
        File f3=new File("E:\\aaa\\ccc.txt");
        System.out.println(f3.isDirectory());//false
        System.out.println(f3.isFile());//false
        System.out.println(f3.exists());//false

    }
}

获取方法代码演示:

演示准备:
1.
JAVA-File_第7张图片
2.进入aaa
image.png
3.有三个文件夹、两个文件
JAVA-File_第8张图片

public class Test02 {
    public static void main(String[] args) {
/*
public long length()                返回文件的大小(字节数量)
public String getAbsolutePath()     返回文件的绝对路径
public String getPath()             返回定义文件时使用的路径
public String getName()             返回文件的名称,带后缀
public long lastModified()          返回文件的最后修改时间(时间毫秒值)
*/

        /*1.length返回文件的大小(字节数量)*/

//        细节1.:这个方法只能获取文件的大小,单位是字节
//        如果单位我们要是M,G,可以不断的除以1024
//        细节2:这个方法无法获取文件夹的大小
//        如果我们要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小都累加在一起

        File f1=new File("E:\\aaa\\aaa.txt");
        System.out.println(f1.length());//10字节

        File f2=new File("E:\\aaa\\bbb");
        System.out.println(f2.length());//文件夹永远是0字节

        System.out.println("---------------------------------------");



        /*2.getAbsolutePath()返回文件的绝对路径*/
        File f3=new File("E:\\aaa\\bbb.txt");
        System.out.println(f3.getAbsolutePath());// E:\aaa\bbb.txt

        //***此时在当前项目下新建一个bbb.txt文件****
        File f4=new File("bbb.txt");
        System.out.println(f4.getAbsolutePath());//E:\IdeaProjects\fileDemo\bbb.txt


        System.out.println("---------------------------------------");



        /* 3.getPath()返回定义文件时使用的路径   */
        File f5=new File("E:\\aaa\\bbb.txt");
        System.out.println(f5.getPath());//E:\aaa\bbb.txt
        File f6=new File("bbb.txt");
        System.out.println(f6.getPath());//bbb.txt


        System.out.println("---------------------------------------");


        /* 4. getName()返回文件的名称,带后缀*/
        //细节1:
        //bbb.txt:
        //      bbb 文件名
        //      txt 后缀名、扩展名
        //细节2:
        //文件夹:返回的就是文件夹的名字
        File f7=new File("E:\\aaa\\bbb.txt");
        System.out.println(f7.getName());//bbb.txt
        File f8=new File("E:\\aaa\\bbb");
        System.out.println(f8.getName());//bbb


        /* 5.lastModified  返回文件的最后修改时间(时间毫秒值)*/
        File f9=new File("E:\\aaa\\bbb.txt");
        System.out.println(f9.lastModified());//1707034934000




//课堂练习:将文件的最后修改时间的毫秒值变成下面格式
//yyyy年MM月dd日 HH:mm:ss
Date d=new Date(1707034934000L);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String time = sdf.format(d);
System.out.println(time);//2024年02月04日 16:22:14
    }
}

创建、删除
JAVA-File_第9张图片
演示准备:
1.
JAVA-File_第10张图片
2.进入aaa
image.png
3.有三个文件夹、两个文件
JAVA-File_第11张图片

创建方法代码演示:

public class Test03 {
    public static void main(String[] args) throws IOException {
/*
public boolean createNewFile()      创建一个新的空的文件
public boolean mkdir()              创建单级文件夹
public boolean mkdirs()             创建多级文件夹
public boolean delete()             删除文件、空文件夹
*/


/*1.createNewFile 创建一个新的空的文件*/
//细节1:如果当前路径表示的文件是不存在的,则创建成功,方法返回true
//      如果当前路径表示的文件是存在的,则创建失败,方法返回false
//细节2:如果父级路径是不存在的,那么方法会有异常IOException
//细节3:createNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件
File f1 = new File("E:\\aaa\\eee.txt");
System.out.println(f1.createNewFile());//true

/*2.mkdir   make Directory,文件夹(目录)*/
//细节1:windows当中路径是唯一的,如果当前路径已经存在,则创建失败,返回false
//细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹。
File f2 = new File("E:\\aaa\\eee");
System.out.println(f2.mkdir());//true

/*3.mkdirs   创建多级文件夹*/
//细节:既可以创建单级的,又可以创建多级的文件夹
File f3 = new File("E:\\aaa\\ccc\\ddd\\eee");//在ccc下创建了ddd,ddd下创建了eee
System.out.println(f3.mkdirs());//true
    }
}

演示完:
创建的文件夹和文件
JAVA-File_第12张图片
多级文件夹也创建出来了
JAVA-File_第13张图片


删除方法代码演示:

image.png

public class Test04 {
    public static void main(String[] args) {
         /*
        public boolean delete()             删除文件、空文件夹
        细节:
            如果删除的是文件,则直接删除,不走回收站。
            如果删除的是空文件夹,则直接删除,不走回收站
            如果删除的是有内容的文件夹,则删除失败
      */


        //1.创建File对象
        File f1 = new File("E:\\aaa\\eee");
        //2.删除
        System.out.println(f1.delete());//true

        //1.创建File对象
        File f2 = new File("E:\\aaa\\eee.txt");
        //2.删除
        System.out.println(f2.delete());//true
    }
}

删除后:
JAVA-File_第14张图片


获取文件夹:

一个listroot方法
两个重载的list方法
三个重载的listFiles方法

JAVA-File_第15张图片
只需掌握蓝标的方法


演示准备:
1.
JAVA-File_第16张图片
2.进入aaa
image.png
3.有二个文件夹、两个文件
注:bbb文件夹下有ddd文件夹
JAVA-File_第17张图片

public class Test05 {
    public static void main(String[] args) {

        // 1.创建File对象
        File f3 = new File("E:\\aaa\\bbb");
        File[] files3 = f3.listFiles();
        System.out.println(Arrays.toString(files3));//[E:\aaa\bbb\ddd]


        //1.创建File对象
        File f1 = new File("E:\\aaa\\ccc");
        File[] files1 = f1.listFiles();
        System.out.println(Arrays.toString(files1));//[]


        //1.创建File对象
        File f2 = new File("E:\\aaa\\bbb.txt");
        File[] files2 = f2.listFiles();
        System.out.println(Arrays.toString(files2));//null


        /*需求:打印里面所有的txt文件*/
        //1.创建File对象
        File f = new File("E:\\aaa");
        File[] arr = f.listFiles();
        for (File file : arr) {
            //file依次表示aaa文件夹里面每一个文件或者文件夹的路径
            if(file.isFile() && file.getName().endsWith(".txt")){
                System.out.print(file+"  ");
            }
        }
    }
}

控制台:
[E:\aaa\bbb\ddd]
[]
null
E:\aaa\bbb.txt E:\aaa\ccc.txt

JAVA-File_第18张图片

你可能感兴趣的:(java,开发语言)