File类 API方法

时间:2024-4-19    作者:老大夫    分类: JAVA


1. File类的理解

File类构造器参数是文件路径,只是对文件或者文件夹增删改,需要操作文件内容的话,就需要后面的IO流类了
File类只是作为输入输出的端点。

File类在Java.Io包下
File类的一个对象,对应操作系统的一个文件或者文件目录,idea中使用单元测试方法是在model中,如果是main方法则是在project中
File类中声明了新建、删除、获取名称、重命名等方法,并没有涉及到文件内容的读写操作。要想实现文件内容的读写,我们就需要使用io流。
File类对象,通常是作为io流操作的端点。 就是输入的起点和输出的终点
代码层面,将file文件作为参数传送到IO流的构造器中

2.内部APi使用说明

绝对路径:包括盘符在内的完整路径
相对路径:相对于运行程序的目录的路径

  1. 构造器

•public File(String pathname) :以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
•public File(String parent, String child) :以parent为父路径,child为子路径创建File对象。
•public File(File parent, String child) :根据一个父File对象和子文件路径创建File对象

举例

public class FileTest {
    @Test
    public  void Test01(){
//        •public File(String pathname) :以pathname为路径创建File对象,
//         可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
        File file = new File("D:\\io\\hello.txt");
        File abc = new File("abc");
        System.out.println(abc.getAbsolutePath());
    }
    @Test
    public  void Test02(){
//        •public File(String parent, String child) :以parent为父路径,child为子路径创建File对象。
        File file = new File("D:\\io","abc.txt");
        File file2 = new File("abc","123.txt");
        System.out.println(file.getAbsolutePath());
        System.out.println(file2.getAbsolutePath());

//        •public File(File parent, String child) :根据一个父File对象和子文件路径创建File对象
        File file3 = new File(file2, "321.txt");
        System.out.println(file3.getAbsolutePath());
    }

}
  1. 常用方法

1、获取文件和目录基本信息

•public String getName() :获取名称
•public String getPath() :获取路径
•public String getAbsolutePath():获取绝对路径
•public File getAbsoluteFile():获取绝对路径表示的文件
•public String getParent():获取上层文件目录路径。若无,返回null
•public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
•public long lastModified() :获取最后一次的修改时间,毫秒值
如果File对象代表的文件或目录存在,则File对象实例初始化时,就会用硬盘中对应文件或目录的属性信息(例如,时间、类型等)为File对象的属性赋值,否则除了路径和名称,File对象的其他属性将会保留默认值。

@Test
    public void test03(){
        File file = new File("123.txt");
        System.out.println(file.getName());
        System.out.println(file.getPath());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getAbsoluteFile());
        System.out.println(file.getParent());
        System.out.println(file.length());
        System.out.println(file.lastModified());
    }

2、列出目录的下一级
•public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
•public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。

@Test
    public void test04(){
        File file = new File("D:\\io");
        String[] list = file.list();
        for (String s:list){
            System.out.println(s);
        }

        File[] files = file.listFiles();
        for(File file1:files){
            System.out.println(file1.getName());
        }
    }

3、File类的重命名功能
•public boolean renameTo(File dest):把文件重命名为指定的文件路径。
原file必须存在,新file必须不存在,且新file的文件目录必须存在

@Test
    public void test05(){
        File file = new File("D:\\io\\hello.txt");
        File file1 = new File("D:\\io\\bcd.txt");
        //file必须存在,file1必须不存在,且file1的文件目录必须存在
        boolean b = file.renameTo(file1);
        System.out.println(b);
    }

4、判断功能的方法
•public boolean exists() :此File表示的文件或目录是否实际存在。
•public boolean isDirectory() :此File表示的是否为目录。
•public boolean isFile() :此File表示的是否为文件。
•public boolean canRead() :判断是否可读
•public boolean canWrite() :判断是否可写
•public boolean isHidden() :判断是否隐藏

@Test
    public void test06(){
        File file = new File("D:\\io\\123.txt");
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.canRead());
        System.out.println(file.canWrite());
        System.out.println(file.isHidden());
    }

5、创建、删除功能
•public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false。
•public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
•public boolean mkdirs() :创建文件目录。如果上层文件目录不存在,一并创建。
•public boolean delete() :删除文件或者文件夹 删除

注意事项:① Java中的删除不走回收站。② 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录。

@Test
    public void test07() throws IOException {
        File file = new File("D:\\io\\456.txt");

        if(!file.exists()){
            file.createNewFile();
            System.out.println("创建成功");
        }else {
            System.out.println("此文件已经存在");
            if(file.delete()){
                System.out.println("文件删除成功");
            }else {
                System.out.println("文件删除失败");
            }
        }
    }

    @Test
    public void test08() throws IOException {
        //前提D:\io存在,D:\io\io2或3不存在
        File file = new File("D:\\io\\io2");
        System.out.println(file.mkdir()?"创建成功":"创建失败");

        File file2 = new File("D:\\io\\io3");
        System.out.println(file2.mkdirs()?"创建成功":"创建失败");
    }

    @Test
    public void test09() throws IOException {
        //前提D:\io存在,D:\io\io2或3不存在,mkdirs可以创建多级目录
        File file = new File("D:\\io\\io2\\io4");
        System.out.println(file.mkdir()?"创建成功":"创建失败");

        File file2 = new File("D:\\io\\io3\\io5");
        System.out.println(file2.mkdirs()?"创建成功":"创建失败");
    }

版权所有:伸手党盘
文章标题:File类 API方法
文章链接:https://ssdpan.cn/?post=393
本站文章均为原创,转载文章会标注转载地址,仅供学习使用,未经授权请勿用于任何商业用途

推荐阅读:


扫描二维码,在手机上阅读