Java基础 第四节 第八课

举报
我是小白呀iamarookie 发表于 2021/09/09 23:16:37 2021/09/09
【摘要】 File 类 概述构造方法代码展示注意事项 常用方法获取功能的方法代码展示 绝对路径和相对路径代码展示 判断功能的方法代码展示 创建删除功能的方法代码展示 目录的遍...

概述

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

构造方法

  • public File(String pathname): 通过将给定的路径名字符串准换为抽象路径名来创建新的 File 实例
  • public File(String parent, String child): 从父路径名字符串和子路径名字符串创建新的 File 实例
  • public File(File parent, String child): 从父抽象路径名和子路径名字符串创建新的 File 实例

代码展示

import java.io.File;

public class Test {
    public static void main(String[] args) {
        // 文件路径名
        String pathname = "a.txt";
        File file1 = new File(pathname);

        // 通过父路径和子路径字符串
        String parent = "c:/Users/Windows/Desktop";
        String child1 = "b.txt";
        File file2 = new File(parent, child1);
        
        // 通过父级File对象和子路径字符串
        File parentDir = new File("c:/Users/Windows/Desktop");
        String child2 = "b.txt";
        File file3 = new File(parentDir, child2);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

注意事项

  1. 一个 File 对象代表硬盘中实际存在的一个文件或者目录
  2. 无论该路径下是否存在文件或者目录, 都不影响 File 对象的创建

常用方法

获取功能的方法

  • ```public String getAbsolutePath()``: 返回此 File 的绝对路径名字符串
  • public String getPath(): 返回此 File 的构造路径字符串
  • public String getName(): 返回由此 File 表示的文件或者目录的名称
  • public long length(): 返回由此 File 表示的文件的长度

代码展示

import java.io.File;

public class Test {
    public static void main(String[] args) {
        File f = new File("c:/Users/Windows/Desktop/d.txt");
        System.out.println("文件的绝对路径:" + f.getAbsolutePath());
        System.out.println("文件的构造路径:" + f.getPath());
        System.out.println("文件名称:" + f.getName());
        System.out.println("文件长度:" + f.length());
    }
}

输出结果:
文件的绝对路径:c:\Users\Windows\Desktop\d.txt
文件的构造路径:c:\Users\Windows\Desktop\d.txt
文件名称:d.txt
文件长度:0

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

绝对路径和相对路径

  • 绝对路径: 从盘符开始的路径, 这是一个完整的路径
  • 相对路径: 相对于项目目录的路径, 这是一个便捷的路径 (开发中经常使用)

代码展示

import java.io.File;

public class Test {
    public static void main(String[] args) {
        // C盘下的a.txt文件
        File f1 = new File("C:/Users/Windows/Desktop/a.txt");
        System.out.println(f1.getAbsolutePath());

        // 项目下的a.txt文件
        File f2 = new File("a.txt");
        System.out.println(f2.getAbsolutePath());
    }
}

输出结果:
C:\Users\Windows\Desktop\a.txt
C:\Users\Windows\IdeaProjects\测试6\a.txt

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

判断功能的方法

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

代码展示

import java.io.File;

public class Test {
    public static void main(String[] args) {
        File f1 = new File("a.txt");
        File f2 = new File("b.txt")   ;

        // 判断是否存在
        System.out.println("f1 是否存在:" + f1.exists());
        System.out.println("f2 是否存在:" + f2.exists());

        // 判断是文件还是目录
        System.out.println("f1 是否是文件" + f1.isFile());
        System.out.println("f1 是否是目录" + f1.isDirectory());
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

创建删除功能的方法

  • public boolean createNewFile(): 当且仅当具有该名称的文件尚不存在时, 创建一个新的空文件
  • public boolean delete(): 删除由此 File 表示的文件或目录
  • public boolean mkdir(): 创建由此 File 表示的目录
  • public boolean mkdirs(): 创建由此 File 表示的目录, 包括任何必须但不存在的父目录

代码展示

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

public class Test {

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

        // 目录的创建
        File f2 = new File("newDir");
        System.out.println("是否存在:" + f2.exists());  // false
        System.out.println("是否创建:" + f2.mkdir());  // true
        System.out.println("是否存在:" + f2.exists());  // true

        // 创建多级目录
        File f3 = new File("newDira/newDirb");
        System.out.println(f3.mkdir());  // false
        File f4 = new File("newDira/newDirb");
        System.out.println(f4.mkdirs());  // true

        // 文件的删除
        System.out.println(f1.delete());  // true

        // 目录的删除
        System.out.println(f2.delete());  // true
        System.out.println(f4.delete());  // false
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

API 中说明: delete 方法, 如果此 File 表示目录, 则目录删空才能删除.

目录的遍历

  • public String[] list(): 返回一个 String 数组, 表示该 File 目录中的所有子文件或目录
  • public File[] listFiles(): 返回一个 File 数组, 表示该 File 目录中的所有的子文件或目录
import java.io.File;

public class Test {
    public static void main(String[] args) {
        File dir = new File("java_code");

        // 获取当前目录下的文件夹名称
        String[] names = dir.list();
        for(String name : names){
            System.out.println(name);
        }
        // 获取当前目录下的文件以及文件夹对象, 只要拿到了文件对象, 那么就可以获取更多信息
        File[] files = dir.listFiles();
        for(File file : files){
            System.out.println(file);
        }
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

注: 调用 listFiles 方法的 File 对象, 表示的必须是实际存在的目录. 否则返回 null, 无法进行遍历.

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/111578014

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。