Java高级编程—File类(从0到1详解。附有代码+案列)

二十五.File

(有异常直接抛出即可)

25.1 概述

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

25.2 File构造方法

方法说明
public File(String pathname)根据文件路径创建文件对象
public File(String parent, String child)根据父路径名字符串和子路径名字符串创建文件对象
public File(File parent, String child)根据父路径对应文件对象和子路径名字符串创建文件对象
import java.io.File;

public class Test01 {
    public static void main(String[] args) {
        String str = "E:\\software\\ideak\\ideapro\\kwhcode\\a.txt";

        //1.根据字符串表示的路径,变成File对象
        File file1 = new File(str);
        System.out.println(str);
      //E:\software\ideak\ideapro\kwhcode\a.txt

        // 2. 根据父路径名字符串和子路径名字符串创建文件对象
        // 父路径:E:\software\ideak\ideapro\kwhcode
        // 子路径:a.txt
        String fu = "E:\\software\\ideak\\ideapro\\kwhcode";
        String zi = "a.txt";
        File file2 = new File(fu,zi);
        System.out.println(file2);
        //E:\software\ideak\ideapro\kwhcode\a.txt

        // 3.根据父路径对应文件对象和子路径名字符串创建文件对象
        // 即 将File表示的路径和字符串拼接
      File file3 = new File("E:\\software\\ideak\\ideapro\\kwhcode");
        String str1 = "a.txt";
        File file4 = new File(file3,str1);
        System.out.println(file4);
        //E:\software\ideak\ideapro\kwhcode\a.txt
    }
}

25.3 File常见的成员方法

方法名说明
public boolean isDirectory()判断此路径名表示的File是否为文件夹
public boolean isFile()判断此路径名表示的File是否为文件
public boolean exists()判断此路径名表示的File是否存在
public long length()返回文件的大小(字节数量)
public String getAbsolutePath()返回文件的绝对路径
public String getPath()返回定义文件时使用的路径
public String getName()返回文件的名称,带后缀
public long lastModified()返回文件的最后修改时间(时间毫秒值)
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()创建单级文件夹
public boolean mkdirs()创建多级文件夹
public boolean delete()删除文件、空文件夹

delete删除默认只删除文件和空文件,并且是直接删除不走回收站

import java.io.File;

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

        //1.对一个文件的路径进行判断
        File f1 = new File("E:\\a.txt");
        System.out.println(f1.isDirectory());//false
        System.out.println(f1.isFile());//true
        System.out.println(f1.exists());// true

        System.out.println();
        //2.对一个文件夹的路径进行判断
        File f2 = new File("E:\\aaa");
        System.out.println(f2.isDirectory());//true
        System.out.println(f2.isFile());//false
        System.out.println(f2.exists());//true

        //3.对一个不存在的路径进行判断
        System.out.println();
        File f3 = new File("E:\\aaaa");
        System.out.println(f3.isFile());//true
        System.out.println(f3.isDirectory());//true
        System.out.println(f3.exists());//true

        // 4.length  返回文件的大小(字节数量) a.txt里有两字
        //无法获取文件夹的大小,如果我们要获取一个文件夹的大小,
        // 需要把这个文件夹里面所有的文件大小都累加在一起。
        System.out.println();
        File f4 = new File("E:\\a.txt");
        System.out.println(f4.length());//6

        File f5 = new File("E:\\aaa");
        System.out.println(f5.length());//0

        // 5.getAbsolutePath 返回文件的绝对路径
        File f6 = new File("E:\\a.txt");

        String pathF6 = f6.getAbsolutePath();
        System.out.println(pathF6); //E:\a.txt


        File f7 = new File("code_java02\\kwh.txt");
        System.out.println(f7.getAbsolutePath());
     //E:\software\ideak\ideapro\kwhcode\code_java02\kwh.txt

        //6.getPath 返回定义文件时使用的路径
        File f8 = new File("E:\\a.txt");
        String pathF8 = f8.getPath();
        System.out.println(pathF8);//E:\a.txt

        File f9 = new File("code_java02\\kwh.txt");
        String pathF9 = f9.getPath();
        System.out.println(pathF9);//code_java02\kwh.txt

        //7.getName 获取名字
        File f10 = new File("E:\\a.txt");
        System.out.println(f10.getName());//a.txt

        File f11 = new File("E:\\aaa");
        System.out.println(f11.getName());//aaa

    }
}

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

public class Test02 {
    public static void main(String[] args) throws IOException {

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

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

        //3.mkdirs   创建多级文件夹
        //细节:既可以创建单级的,又可以创建多级的文件夹
        File f3 = new File("E:\\bbb\\ggg");
        boolean c = f3.mkdirs();
        System.out.println(c);//true

        //4.delete() 删除文件、空文件夹
        // 如果删除的是文件,则直接删除,不走回收站。
        // 如果删除的是空文件夹,则直接删除,不走回收站
        // 如果删除的是有内容的文件夹,则删除失败
        File f4 = new File("E:\\bbb\\ggg");
        boolean d = f4.delete();
        System.out.println(d);//ture
    }
}

25.4 File获取并遍历的方法

方法解释
public File[ ] listFiles()获取当前该路径下所有内容
import java.io.File;

public class Test03 {
    public static void main(String[] args) {
        //1.创建File对象
        File f = new File("E:\\K");
        //2.listFiles方法
        //作用:获取K文件夹里面的所有内容,把所有的内容放到数组中返回
        File[] files = f.listFiles();
        for (File file : files) {
            System.out.println(file);
        }
    }
}

25.5Test

25.5.1 test01

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

public class Test {
    public static void main(String[] args) throws IOException {
        //需求:在当前模块下的aaa文件夹中创建一个a.txt文件

        // 创建aaa文件夹的父级路径
        File f1 = new File("code_java02\\filedemo\\aaa");
        // 创建文件夹
        f1.mkdirs();
        // 拼接父级和子级路径
        File f2 = new File(f1,"a.txt");
        // 创建文件
        boolean newFile = f2.createNewFile();
        if (newFile){
            System.out.println("创建成功");
        }else {
            System.out.println("创建失败");
        }

    }
}

25.5.2 test02

import java.io.File;

public class Test02 {
    public static void main(String[] args) {
            /*需求:
             定义一个方法找某一个文件夹中,是否有以mpv结尾的电影。
           (暂时不需要考虑子文件夹)
        */
   // 指定查找路径
    File f1 = new File("code_java02\\filedemo\\aaa");
    // 调用方法
        boolean file = getFile(f1);
        System.out.println(file);
    }
  
 //定义方法
    public static boolean getFile(File file){
        // 获取文件里的所有内容
        File[] files = file.listFiles();
        // 遍历文件夹所有内容
        for (File file1 : files) {
            // 判断是否文件并且是否符合后缀名格式
            if (file1.isFile() && file1.getName().endsWith(".mpv")){
                return true;
            }
        }
        // 循环结束后没有找打返回false
        return false;
    }
}
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔚一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值