Java中的File文件类

public class File extends Object implements Serializable, Comparable <File>
这个File文件既可以表示文件也可以表示目录(文件夹)
构造方法

  • File(File parent, String child)
        根据parent抽象路径名和child路径名字符串创建一个新的File实例。

  • File(String pathname)
        通过将指定路径名字符串转换为抽象路径名来创建一个新File实例

  • File(String parent, String child)
        根据parent路径名字符串和child路径名字符串创建一个新的File实例

import java.io.File;

public class MyTest1 {
    public static void main(String[] args) {
        //File的构造方法
       File file0 = new File("e.txt");
        File file = new File("E:\\a.txt");
        File file1 = new File("E:\\", "b.txt");
        File file2 = new File("E:\\");
        File file3 = new File(file2, "c.txt");
    }
}

File类的创建功能

  • public boolean createNewFile()

    创建一个新的文件,如果已经存在这样的文件,那么就不会再创建了

  • public boolean mkdir()
       创建文件夹,如果存在这样的文件夹就不会再创建了,此方法只可以创建单层目录,创建多层目录需要一层一层创建

  • public boolean mkdir()
       创建文件夹,如果父类文件夹不存在,会帮你创建出来,既可以创建单层目录也可以创建多层目录。

注意实行:
   如果创建文件或者文件夹忘记写盘符路径,那么就会默认创建在项目路径下。

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

public class MyTest1 {
    public static void main(String[] args) throws IOException {
        //File的构造方法
        //这种不带盘符路径的会将创建在当前项目路径下
        File file0 = new File("e.txt");
        File file = new File("E:\\a.txt");
        File file1 = new File("E:\\", "b.txt");
        File file2 = new File("E:\\");
        File file3 = new File(file2, "c.txt");
        boolean f0 = file0.createNewFile();
        boolean f1 = file.createNewFile();
        boolean f2 = file1.createNewFile();
        boolean f3 = file2.createNewFile();
        boolean f4 = file3.createNewFile();
        System.out.println(f1);

    }
}
import java.io.File;

public class MyTest2 {
    public static void main(String[] args) {
        File file = new File("E:\\bbb\\ccc");
        //创建多级目录,返回值是目录是否创建成功,
        //第一次成功创建返回true,再次创建返回false
        boolean b = file.mkdirs();
        //只能创建单层目录
        boolean mkdir = file.mkdir();
    }
}

File类的删除功能

  1. public boolean delete()
        删除文件或者是文件夹

注意

  1. .删除文件夹时,这个文件夹得是空文件夹,如果这个文件夹里面有文件,则不可以删除
  2. Java中得删除时不走回收站的,要删除一个文件夹,该文件夹中不能包含文件或者是文件夹,

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

public class MyTest3 {
    public static void main(String[] args) throws IOException {
        File file = new File("f.txt");
        boolean b = file.delete();
        System.out.println(b);

    }
}

File类的重命名功能

  • public boolean renameTo(File dest)
      把文件重命名为指定的文件路径

注意

  • 如果路径名相同,就是改名
  • 如果路径名不同就是改名并剪切
import java.io.File;

public class MyTest4 {
    public static void main(String[] args) {
        File file = new File("a.txt");
        boolean b = file.renameTo(new File("f.txt"));
        //是否重命名成功
        System.out.println(b);
        File file1 = new File("b.txt");
        //改名并剪切到了E盘
        boolean b1 = file1.renameTo(new File("E:\\a.txt"));
        System.out.println(b1);

    }
}

File类的获取功能

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

-public File getAbsoluteFile()
  返回该文件的绝对路径的File表现形式

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

  • 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数组。

import java.io.File;

public class MyTest6 {
    public static void main(String[] args) {
        File file = new File("aa.txt");
        ///获取相对路径
        String path = file.getPath();
        //返回该文件的绝对路径File表现形式
        File file1 = file.getAbsoluteFile();
       //返回该文件的绝对路径的String表现形式
        String path1 = file.getAbsolutePath();
        //获取当前目录下的绝对路径
        File file2 = new File("./");
        String path2 = file2.getAbsolutePath();
        //获取文件名
        String name = file.getName();
        //获取文件的长度字节数
        long length = file.length();
        System.out.println(path);
        System.out.println(file1.toString());
        System.out.println(path1);
        System.out.println(path2);
        System.out.println(name);
        System.out.println(length);

    }
}

运行结果为:

aa.txt
F:\IdeaProjects\MyJava-5-20(IO流)\aa.txt
F:\IdeaProjects\MyJava-5-20(IO流)\aa.txt
F:\IdeaProjects\MyJava-5-20(IO流)\.
aa.txt
0

import java.io.File;

public class MyTest7 {
    public static void main(String[] args) {
        File file = new File("F:\\IdeaProjects\\MyJava-5-20(IO流)","c.txt");
        //反回父路径的String表现形式
        String s = file.getParent();
        //返回父路径的File表现形式。这种比较灵活
        File file1 = file.getParentFile();
        String s1 = file1.toString();
        System.out.println(s1);
        System.out.println(s);
        File file2 = new File(file1, "g.txt");
    }
}

运行结果为:

F:\IdeaProjects\MyJava-5-20(IO流)
F:\IdeaProjects\MyJava-5-20(IO流)
import java.io.File;

public class MyTest {
    public static void main(String[] args) {
        File file = new File("E:\\test");
        //获取此目录下所有的文件或者文件夹的数组
        File[] files = file.listFiles();
        for (File file1 : files) {
            System.out.println(file1);
        }
        //获取此目录下所有的文件或者文件夹的名称的数组
        String[] list = file.list();
        for (String s : list) {
            System.out.println(s);
        }
    }
}

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

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

例子
1.给筛选出,E:\test 目录下 .png结尾的文件,并把他们的后缀名改成 .jpg
2.删除多级目录

import java.io.File;

public class MyTest9 {
    public static void main(String[] args) {
        File file = new File("E:\\test");
        if (file.exists()){
            File[] files = file.listFiles();
            for (File f : files) {
                if (f.isFile()&&f.getName().endsWith(".png")){
                    String name = f.getName();
                    name = name.substring(0,name.lastIndexOf("."));
                    File file1 = new File(f.getParent(), name + ".jpg");
                    f.renameTo(file1);
                }
            }
        }else{
            System.out.println("此目录不存在");
        }

    }
}

import java.io.File;

public class MyTest8 {
    public static void main(String[] args) {
        File file = new File("E:\\test");
        delate(file);
    }

    private static void delate(File file) {
        File[] files = file.listFiles();
        for (File f : files) {
            if(f.isFile()){
                f.delete();
            }else{
                delate(f);
            }
        }
        //删除自己的空目录
        file.delete();
    }
}

另外再对File的一些获取功能做些测试

import java.io.File;

public class MyTest10 {
    public static void main(String[] args) {
        File file = new File("E:\\test");
        String name = file.getName();
        System.out.println(name);
        String parent = file.getParent();
        System.out.println(parent);
        String path = file.getAbsolutePath();
        System.out.println(path);
        //获取相对路径
        File file1 = new File("c.txt");
        String path1 = file1.getPath();
        System.out.println(path1);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值