20:File类与IO流-----File类

一:File类概述

java.io.File:类是文件和目录路径名的抽象表示,主要用于文件和目录的创建,查找和删除等操作。

二:构造方法

public File(String pathname);通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
public File(String parent,String child);从父路径字符串和子路径名字字符串创建新的File实例。
public File(File patent,String child);从父抽象路径名和子路径名字符串创建新的File实例。
package Demo03;

import java.io.File;

/*
    java.io.File类
    文件和目录路径名表示形式。。
    java把电脑中文件文件夹(目录)封装为一个File类我们可以使用File类对文件和文件夹进行操作。
    我们可以使用File类的方法:
        创建一个文件/文件夹
        删除一个文件/文件夹
        获取文件/文件夹
        判断文件/文件类是否存在
        对文件夹进行遍历。
        获取文件的大小
    File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法
    重点:
*/
public class Demo01File {
    /*
        static String pathSeparator 与系统有关的路径分隔符,为了方便它被表示为一个字符串。
        static char pathSeparatorChar 与系统有关的路径分隔符
        static String separator  与系统相关的默认名称分隔符,为了方便,它被表示为一个字符串
        static Char separatorChar  与系统有关的默认名称分隔符
        
        操作路径:路径不能写死了
        C:\develop\a\a.txt    window
        C:/develop/a/a.txt   Linux
        "C:"+File.separator+"develop"+File.separator+"a"+File.separator+"a.txt"
    */
    public static void main(String[] args) {
        String pathSeparator = File.pathSeparator;
        System.out.println(pathSeparator);//路径分隔符  window ;分号  linux :冒号
        String separator =File.separator;
        System.out.println(separator);//文件分隔符 window 反斜杠\   Linux 正斜杠 /
        
    }
}

在这里插入图片描述

三:绝对路径和相对路径

package Demo03;
/*
    路径:
        相对路径:是一个完整的路径
        以盘符(C:,d:)开始的路径
            C:\\a.txt
            C:\\Users\itcast\\IdeaProjects\\one
            D:\\Demo\\b.txt
        相对路径:是一个简化的路径
            相对路径是相对于当前目录的根目录(C:\\Users\、itcast\\ideaProjects\\one)
            如果使用当前项目的根目录,路径可以简化书写:
            C:\\Users\itcast\\ideaProjects\\one\\123.txt----->简化为124.txt 可以省略项目的根目录
        注意:
            1:路径是不区分大小写
            2:路径中的文件名称分隔符window使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠。
*/
public class Demo2File {
}

四:File类的构造方法

package Demo03;

import java.io.File;
/*
    路径:
        相对路径:是一个完整的路径
        以盘符(C:,d:)开始的路径
            C:\\a.txt
            C:\\Users\itcast\\IdeaProjects\\one
            D:\\Demo\\b.txt
        相对路径:是一个简化的路径
            相对路径是相对于当前目录的根目录(C:\\Users\、itcast\\ideaProjects\\one)
            如果使用当前项目的根目录,路径可以简化书写:
            C:\\Users\itcast\\ideaProjects\\one\\123.txt----->简化为124.txt 可以省略项目的根目录
        注意:
            1:路径是不区分大小写
            2:路径中的文件名称分隔符window使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠。
*/
public class Demo2File {
    public static void main(String[] args) {
        /*
            File类的构造方法
        */
        show03();
    }

    /*
        File(File parent,String child)根据parent抽象路径名和child路径名字符串创建一个新的File实例
        参数:把路径分成了两部分
            File parent:父路径
            String child:子路径
        好处:
            父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径可以变化
            父路径是File类型,可以使用File的方法对路径进行一些操作,再使用路径创建对象。
    */
    private static void show03(){
        File parent = new File("F:\\");
        File file =new File(parent,"photo.png\"");
        System.out.println(file);
    }
    /*
        File(String parent,String child) 根据parent路径名字字符串和child路径名字符串来创建一个新的File实例
        参数:把路径分成了两部分
            String parent:父路径
            String child:子路径
        好处
            父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径可以变化
    */
    private static void show02(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 show01() {
        File f1 =new File("F:\\文件夹");
        System.out.println(f1);//重写了Object类的toString方法  F:\\文件夹

        File f2 =new File("F:\\文件夹");
        System.out.println(f1);//重写了Object类的toString方法  F:\\文件夹
        File f3 =new File("b.txt");
        System.out.println(f3);
    }

}

在这里插入图片描述

五:File类获取功能的方法

public String getAbsolutePath();返回此File的绝对路径名字字符串。
public String getPath();将此File转换为路径名字字符串
public String getName();返回由此File表示的文件或目录的名称。
public long length();返回由此File表示的文件的长度。
package Demo03;

import java.io.File;

/*
File类获取功能的方法:
    public String getAbsolutePath();返回此File的绝对路径名字字符串。
    public String getPath();将此File转换为路径名字字符串
    public String getName();返回由此File表示的文件或目录的名称。
    public long length();返回由此File表示的文件的长度。
*/
public class Demo03File {
    public static void main(String[] args) {
        show04();
    }
    /*
        public long length(); 返回由此File表示的文件的长度。
        获取的是构造方法指向文件的大小,以字节为单位。
        注意:
            文件夹是没有大小概念的,不能获取文件夹的大小。
            如果构造方法给出的路径不存在,那么Length方法返回0
    */
    private static void show04(){
        File f1 =new File("G:\\C++\\test.cpp");
        long l1=f1.length();
        System.out.println(l1);
    }
    /*
        public String getName();返回由此File表示的文件或目录的名称。
        获取的就是构造方法传递路径路径的结尾部分(文件/文件夹)
    */
    private static void show03(){
        File f1 =new File("G:\\C++\\test.cpp");
        String name =f1.getName();
        System.out.println(name);
        File f2 =new File("G:\\C++");
        String name2=f2.getName();
        System.out.println(name2);
    }
    /*
       public String getPath();将此File转换为路径名字字符串
       获取的构造方法中传递的路径
    */
    private static void show02(){
        File file =new File("G:\\C++\\test.cpp");
        String path= file.getPath();
        System.out.println(path);
        System.out.println(file);
        System.out.println(file.toString());;
    }
    /*
        public String getAbsolutePath();返回此File的绝对路径名字字符串。
        获取的构造方法中传递的路径
        无论路径是绝对的还是相对的。
    */
    private static void show01() {
        File file =new File("G:\\C++\\test.cpp");
        String absolutePath1= file.getAbsolutePath();
        System.out.println(absolutePath1);
    }
}

六:File类判断功能的方法

public boolean exists();此File表示的文件或目录是否实际存在。
public boolean isDirectory();此File表示的是否为目录
public boolean isFile();此File表示的是否为文件

代码:

package Demo4;

import java.io.File;

/*
    File判断功能的方法:
        public boolean exists();此File表示的文件或目录是否实际存在。
        public boolean isDirectory();此File表示的是否为目录
        public boolean isFile();此File表示的是否为文件
*/
public class Demo04File {
    public static void main(String[] args) {
        show2();
    }
    /*
        public boolean isDirectory();此File表示的是否为目录
            用来判断构造方法中给定的路径是否以文件夹结尾。
            是:true
            否:false
        public boolean isFile();此File表示的是否为文件。
            用来判断构造方法中给定的路径是否以文件结尾
                是:true
                否: false
       注意:
            电脑的硬盘中只有文件/文件夹,两个方法是互斥
            这两个方法使用前提,路径必须是存在的,否则都返回false
    */
    private static void show2() {
        File f1 =new File("C:\\Users\\Sky\\Desktop\\选题表.doc");
        if (f1.exists()) {
            System.out.println(f1.isDirectory());
            System.out.println(f1.isFile());
        }
    }

    /*
    public boolean exists();此File表示的文件或目录是否实际存在。
    用来判断构造方法中路径是否存在。
       存在:true
       不存在:false
      */
    private static void show1() {
        File f1 =new File("C:\\Users\\Sky\\Desktop\\选题表.doc");
        System.out.println(f1.exists());//true

        File f2 =new File("C:\\Users\\Sky\\Desktop\\11doc");
        System.out.println(f2.exists());//false

        File f3 =new File("one.iml");//相对路径   绝对路径为
        //C:\Users\Sky\IdeaProjects\one\one.iml
        System.out.println(f3.exists());
    }
}

在这里插入图片描述

七:File类创建删除功能的方法

public boolean createNewFile();当且仅当具有该名称的文件尚不存在,则创建一个新的空文件。
public boolean delete();//删除由此File表示的文件或目录。
public boolean mkdir();//创建由此File表示的目录。
public boolean mkdirs();//创建由此File表示的目录,包含任何必需但不存在的父目录。
package Demo4;

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

/*
    File类创建删除功能的方法:
        public boolean createnewFile();当且仅当具有该名称的文件尚不存在,则创建一个新的空文件。
        public boolean delete();//删除由此File表示的文件或目录。
        public boolean mkdir();//创建由此File表示的目录。
        public boolean mkdirs();//创建由此File表示的目录,包含任何必需但不存在的父目录。
*/
public class Demo05File {
    public static void main(String[] args) throws IOException {
        show03();
    }
    /*
        public boolean delete();删除由此File表示的文件或目录。
        此方法,可以删除构造方法路径中给出的文件/文件夹
        返回值:布尔值
            true;文件/文件夹删除成功,返回true
            false;文件夹中有内容,不会删除,返回false,构造方法中路径不存在,也返回false;
        注意:
            delete方法是直接在硬盘删除文件/文件夹,不走回收站,删除要谨慎。
    */
    private static void show03() {
        File f1 =new File("lll");
        boolean b1 =f1.delete();
        System.out.println(b1);
    }

    /*
        public boolean mkdir();//创建单极空文件夹
        public boolean mkdirs();//既可以创建单级空文件夹,也可以创建多级文件夹
        创建文件的路径和名称在构造方法中给出(构造方法的参数)
            返回值:布尔值
                true:文件夹不存在,创建文件夹,返回true
                false;文件夹存在,不会创建,返回false;构造方法中给出的路径不存在则返回false
            注意:
                1:此方法只能创建文件夹,不能创建文件。
                2:路径不存在,不会抛出异常。
     */
    private static void show02() {
        File f1 =new File("two");
        boolean b1 = f1.mkdir();
        System.out.println("b1"+b1);

        File f2 =new File("C:\\Users\\Sky\\IdeaProjects\\one\\444");
        boolean b2=f2.mkdirs();
        System.out.println("b2"+b2);
    }

    /*
        public boolean createNewFile();当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
        创建文件的路径和名称在构造方法中给出(构造方法的参数)
        返回值:布尔值
            true:文件不存在,创建文件,返回true
            false:文件存在,不会创建,返回false
        注意:
            1:此方法只能创建文件,不能创建文件夹
            2:创建文件的路径必须存在,否则会抛出异常。
        public boolean createNewFile() throws IOException
        createNewFile声明抛出了IOException,我们调用这个方法,就必须出来这个异常,要么throws,要try catch
    */
    private static void show01() throws IOException {
        File f1 =new File("C:\\Users\\Sky\\IdeaProjects\\one\\one.txt");
        boolean b1 =f1.createNewFile();
        System.out.println("b1"+b1);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值