File

java.io.File

文件和目录路径名的抽象表示形式。
javo把电脑中的文件和文件夹(目录)封装为了一个FiLe类,我们可以使用FiLe类对文件和文件夹进行操作
我们可以使用FiLe类的方法

创建一个文件/文件夹
删除文件/文件夹获取文件/文件夹
判断文件/文件夹是否存在
对文件夹进行遍历
获取文件的大小
file类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法

重点:记住这三个单词
file:文件
directory:文件夹/目录
path:路径


public class demo1 {
    public static void main(String[] args) {
        String pathSeparator = File.pathSeparator;
        System.out.println(pathSeparator);//路径分隔符 window:分号;    linux:冒号:

        System.out.println(File.separator);//文件名称分隔符 window:反斜杠\    linux:正斜杠/
    }
}

路径

路径:

绝对路径:是一个完整的路径
以盘符(c:,D:)开始的路径
c:\la.txt C:\Users\itcast\IdeaProjects\shungyuan\123.txt D:\demo\b.txt


相对路径:是一个简化的路径
相对指的是相对于当前项目的根目录(C:\Users\itcast\IdeaProjects\shungyuan)
如果使用当前项目的根目录,路径可以简化书写
C:\Users\itcast\IdeaProjects\shungyuan\123.txt-->简化为:123.txt(可以省略项目的根目录)


注意:
1.路径是不区分大小写
2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠

File类的构造方法

File(string pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。
参数:
string pathname:字符串的路径名称
路径可以是以文件结尾,也可以是以文件夹结尾
路径可以是相对路径,也可以是绝对路径
路径可以是存在,也可以是不存在
创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况

public static void main(String[] args) {
        method1();
        method2("C:\\","a.txt");
        method3();
    }
    /*
    File(File parent,String child)根据 parent 抽象路径名和child 路径名字符串创建一个新File实例。
        参数:把路径分成了两部分
            File parent:父路径
            string child:子路径
        好处:
            父路径和子路径,可以单独书写,使用起来非常灵活;
            父路径和子路径都可以变化父路径是FiLe类型,可以使用File的方法对路径进行一些操作,再使用路径创建对象
     */
    private static void method3() {
        File parent = new File("D:\\");
        File file = new File(parent, "hello.java");
        System.out.println(file);

    }

    /*
    File(String parent,String child)根据 parent 路径名字符串和child 路径名字符串创建一个新File实例。
        参数:把路径分成了两部分
        String parent:父路径
        String child:子路径
        好处:
        父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化
     */
    private static void method2(String parent,String child) {
        File file = new File(parent, child);
        System.out.println(file);

    }
/*
File(string pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新File实例。
参数:
    string pathname:字符串的路径名称
    路径可以是以文件结尾,也可以是以文件夹结尾
    路径可以是相对路径,也可以是绝对路径
    路径可以是存在,也可以是不存在
    创建FiLe对象,只是把字符串路径封装为FiLe对象,不考虑路径的真假情况
 */
    private static void method1() {
        File file = new File("D:\\a.txt");
        System.out.println(file);
    }

创建和删除文件夹(包括多级文件夹)

package File;

import java.io.File;
import java.io.IOException;

public class FileCreatDelete {
    public static void main(String[] args) throws IOException {
        //文件的创建
        File f1 = new File("a.txt");
        System.out.println("是否创建:"+f1.createNewFile());
        System.out.println("是否存在:"+f1.isFile());
        System.out.println("============");

        //文件夹的创建
        File f2 = new File("aaa");
        boolean m1 = f2.mkdir();
        System.out.println("创建文件夹"+m1);

        File f3 = new File("a1\\b1\\c1");
        boolean m2 = f3.mkdirs();
        System.out.println("创建多级文件夹"+m2);

        File f4 = new File("sr\\aa\\b");//注意,在创建多级文件夹的时候路径如果错误,直接创建一个新的
        boolean m3 = f4.mkdirs();
        System.out.println("路径不正确时创建多级文件夹"+m3);

        //文件及文件夹的删除,该方法直接删除硬盘文件,不走回收站
        boolean df1 = f1.delete();
        System.out.println("删除文件a.txt"+df1);

        boolean df2 = f2.delete();
        System.out.println("删除文件夹aaa"+df2);

        boolean df3 = f3.delete();
        System.out.println("删除多级文件夹"+df3);

        boolean df4 = f4.delete();
        System.out.println("删除多级文件夹(2)"+df4);

    }
}

注意:在删除文件和文件夹的时候不走回收站,直接从硬盘删除,在删除多级文件夹的时候只删除最后的那个文件夹

遍历文件目录

public class demo4 {
    public static void main(String[] args) {
        /*
            遍历文件夹下的目录(包括隐藏文件,注意,路径不正确时会报空指针异常)
            返回的是一个String类型的数组
         */
        File file = new File("D:\\");
        String[] arr = file.list();
        for (String s:arr
             ) {
            System.out.println(s);
        }
        /*
            将遍历的目录封装为File对象,多个File对象存储到File数组中
         */
        File file1 = new File("D:\\");
        File[] listFiles = file1.listFiles();
        for (File f:listFiles
             ) {
            System.out.println(f);
        }
    }
}

注意,file.list()遍历的时候只包括文件名;file.listFiles()包括路径及文件名

你可能感兴趣的:(File)