java入门篇(21)File类

1.File类的概述和构造方法

1.1File类的概述:

封装文件和目录名称和路径的类。

1.2File类的构造方法

  • File(String pathname):
    根据一个路径得到File对象

  • File(String parent, String child):
    根据一个目录和一个子文件/目录得到File对象

  • File(File parent, String child):
    根据一个父File对象和一个子文件/目录得到File对象

  • File(URI uri)
    通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例

1.3File类的创建功能

  • public boolean createNewFile():
    创建新的文件,如果这个文件存在,则返回创建文件失败。

  • public boolean mkdir():
    创建文件夹 如果存在这样的文件夹,就不创建了

  • public boolean mkdirs():
    创建多级文件夹

注意事项:
如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

补充:

  • 相对路径:没有带盘符的路径
  • 绝对路径:带有盘符的路径

1.4File类的删除功能

  • public boolean delete():
    删除文件或者文件夹

注意:
1.文件夹为空才可以删除。

2.Java中的删除不走回收站。

public class File_text1 {
    public static void main(String[] args) {
        File file = new File("H:\\java\\day 16\\笔记\\day19 - 副本.txt");
        System.out.println(file.delete());
    }
}

1.5File类的重命名功能

  • public boolean renameTo(File dest):
    将所要更改的文件的路径及名称做指定的更改。

注意事项:

  • 如果路径名相同,就是改名。

  • 如果路径名不同,就是改名并剪切。

1.6File类的判断功能

  • public boolean isDirectory():
    判断是否是目录

  • public boolean isFile():
    判断是否是文件

  • public boolean exists():
    判断是否存在

  • public boolean canRead():
    判断是否可读

  • public boolean canWrite():
    判断是否可写

  • public boolean canExecute()
    测试应用程序是否可以执行此抽象路径名表示的文件。

  • public boolean isHidden():
    判断是否隐藏

1.7File类的获取功能

  • public String getAbsolutePath():
    获取绝对路径

  • public String getPath():
    获取相对路径

public class File_text1 {
    public static void main(String[] args) {
        File file = new File("a");
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getPath());
    }
}

结果:
E:\trbsh\a
a
  • public String getParent()
    返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。

  • public File getParentFile()
    返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。

  • public long getTotalSpace()
    返回此抽象路径名指定的分区大小。 返回总容量 单位字节

  • public long getFreeSpace()
    返回此抽象路径名指定的分区中未分配的字节数。返回剩余容量 单位字节

  • public String getName():
    获取名称

  • public long length():
    获取长度。字节数

  • public long lastModified():
    获取最后一次的修改时间,返回毫秒值

  • public String[] list():
    获取指定目录下的所有文件或者文件夹的名称数组

  • public File[] listFiles():
    获取指定目录下的所有文件或者文件夹的File数组

2.案例

2.1 判断C:\text目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

public class File_text1 {
    public static void main(String[] args) {
        File file = new File("C:\\text");
        outputPaper(file);
    }

    private static void outputPaper(File file) {
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isFile() && f.getName().endsWith(".jpg")) {
                System.out.println(f.getName());
            }
            if (f.isDirectory()) {
                outputPaper(f);
            }
        }
    }
}


结果:
5949d37e8e84d.jpg
307811.jpg
5949d37c41ca7.jpg
5949d37e8e84d.jpg
QQ图片20180909111816.jpg

2.2 文件名称过滤器的概述及使用

2.2.1 文件名称过滤器的概述

  • public String[] list(FilenameFilter filter)
  • public File[] listFiles(FilenameFilter filter)

2.2.2 文件名称过滤器的使用:

需求:

判断C:\text目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

2.3 查找指定路径下的所有以.txt结尾的文件

说明:
不用判断目录是否为空的情况,因为isDirectory()和isFIle()方法里面已经做了判空处理。

public class File_test {
    public static void main(String[] args) {
        String url = "E:\\新建文件夹 (2)";
        File file = new File(url);
        findTex(file);
    }

    public static void findTex(File file) {
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isFile() && f.getName().endsWith(".txt")) {
                System.out.println(f.getName());
            }
            if (f.isDirectory()) {
                findTex(f);
            }
        }
    }
}

三、File类常用方法

  • public String getAbsolutePath():
    获取绝对路径
  • public String getPath():
    获取相对路径
  • public String getName():
    获取名称
  • public long length():
    获取长度。字节数
  • public String[] list():
    获取指定目录下的所有文件或者文件夹的名称数组
  • public File[] listFiles():
    获取指定目录下的所有文件或者文件夹的File数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值