IO流之前的铺垫

本文介绍了Java中的File类,包括其构造方法、路径类型、常用方法等。讲解了如何进行文件删除、重命名、权限判断以及获取文件属性。此外,还探讨了如何检查目录中是否存在特定类型的文件并批量修改后缀名,以及删除多级目录的操作。
摘要由CSDN通过智能技术生成

File类

File类的概述

电脑上的这些,文件,他就属于数据, 我们的数据,是以文件的形式来体现的。文件是数据的载体,那Java为了我们方便的去描述这个文件,或目录,给我们提供了一个File类
,File 就是用来描述一个文件或者文件夹(目录),文件和目录路径名的抽象表示形式。

File类的构造方法
File(File parent, String child)

根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

File(String pathname)

通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

File(String parent, String child)

根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

路径

路径分为绝对路径与相对路径

绝对路径

带有盘符号的详细路径 C:\Users\Administrator\Desktop

相对路径

不带有盘符号的路径 晴天_周杰伦.mp3

File类的常用方法
boolean delete() :
	删除此抽象路径名表示的文件或目录。
			File file = new File("C:\\Users\\Administrator\\Desktop\\abc");
			boolean delete = file.delete(); //第一次删除成功,返回true,重复删除,返回false
    		System.out.println(delete);
    		//delete() 这个方法只能删除空目录,非空目录目录,删不了
    //如果要删除多级非空目录,得自己写代码实现
boolean renameTo(File dest) :
重新命名此抽象路径名表示的文件。
		public class MyTest3 {
public static void main(String[] args) {
    //注意renameTo(file1);这个方法,如果我们传入的这个文件对象,跟源文件在同一个目录下,是重命名
    //如果如果我们传入的这个文件对象,跟源文件不在同一个目录下,剪切并重命名。
    File file = new File("b.txt");
    //把b.txt 改成 b.txt
    File file1 = new File("E:\\bbb.txt");
    //重命名一个文件
    boolean b = file.renameTo(file1);
    System.out.println(b);
}
}
几个判断相关的方法
file.isFile():

判断是否是一个文件

file.isFile():

判断是否是一个目录

file.canRead():

判断文件是否可读

file.canWrite():

判断文件是否可写入

file.isHidden():

判断文件是否隐藏

file.exists():

判断文件或目录是否存在

public class MyTest {
public static void main(String[] args) {
    //有关判断的方法
    File file = new File("c.txt");
    //判断是否是一个文件
    boolean file1 = file.isFile();
    //判断是否是一个目录
    boolean directory = file.isDirectory();
    System.out.println(file1);
    System.out.println(directory);
    System.out.println("----------------------");
    File out = new File("out");
    System.out.println(out.isFile());
    System.out.println(out.isDirectory());

}
}

public class MyTest2 {
public static void main(String[] args) {
    File file = new File(System.getProperty("user.home") + "\\desktop", "ddd.txt");
    boolean b = file.canRead();//判断文件是否可读
    boolean b1 = file.canWrite();//判断文件是否可写入
    boolean hidden = file.isHidden();//判断文件是否隐藏
    System.out.println(b);
    System.out.println(b1);
    System.out.println(hidden);


    File file1 = new File("cccc.txt");
    //判断文件或目录是否存在
    boolean exists = file1.exists();
    System.out.println(exists);
    boolean absolute = file1.isAbsolute();
    System.out.println(absolute);
}
}
几个获取相关的方法
file.getAbsolutePath():

获取绝对路径的字符串表现形式

file.getAbsoluteFile():

获取据对路径的Flie表现形式,这种形式更加灵活

file.getPath():

获取相对路径的字符串表现形式

public class MyTest {
public static void main(String[] args) {
    File file = new File("aaa.txt");

    //String absolutePath = file.getAbsolutePath(); //获取绝对路径的字符串表现形式
   // File file1 = file.getAbsoluteFile(); //获取据对路径的Flie表现形式,这种形式更加灵活
  //  file1.delete();

    File file1 = new File("c.txt");
    //获取相对路径的字符串表现形式
    String path = file1.getPath();
    System.out.println(path);
  }
}
file.getParent():

获取文件的父路径的字符串表现形式

file.getParentFile():

获取文件的父路径的File表现形式,这种更加灵活

public class MyTest2 {
public static void main(String[] args) {
    File file = new File(new File("E:\\IdeaProjects\\20190507-MyJavaDemo-File-类-下午"),"c.txt");
    //获取文件的父路径的字符串表现形式
    String parent = file.getParent();
    //获取文件的父路径的File表现形式,这种更加灵活
    File parentFile = file.getParentFile();
    System.out.println(parent);
    System.out.println(parentFile.toString());

}
}
file.getTotalSpace():

获取该目录的总容量,单位是字节

file.getFreeSpace():

获取剩余容量

public class MyTest3 {
public static void main(String[] args) {
    File file = new File("E:\\");
    //获取该目录的总容量,单位是字节
    long totalSpace = file.getTotalSpace();
    System.out.println(totalSpace/1024/1024/1024.0);
    //获取剩余容量
    long freeSpace = file.getFreeSpace();
    System.out.println(freeSpace/ 1024 / 1024 / 1024.0);
    //获取使用的容量=总容量-剩余容量;
  }
}
file.getName():

获取文件名

file.length():

获取文件长度

public class MyTest4 {
public static void main(String[] args) {
    File file = new File("ee.txt");
    //获取文件名
    String name = file.getName();
    //获取文件长度
    long length = file.length();
    System.out.println(length);
    System.out.println(name);
}
}
file.lastModified():

获取文件的最后一次修改时间,返回的是毫秒值

public class MyTest5 {
public static void main(String[] args) {
    //获取文件的最后一次修改时间
    File file = new File("C:\\Users\\Administrator\\Desktop\\ddd.txt");
    //获取文件的最后一次修改时间,返回的是毫秒值
    long time = file.lastModified();
    //把上面的毫秒值,转换成年月日,时分秒
    Date date = new Date(time);
    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String format1 = format.format(date);
    System.out.println(format1);

}

}

file.list():

获取指定目录下的所有文件或者文件夹的名称的数组

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

获取指定目录下的所有文件或者文件夹的File数组

public class MyTest2 {
public static void main(String[] args) {
    //public File[] listFiles ():获取指定目录下的所有文件或者文件夹的File数组
    File file = new File("E:\\test");
    File[] files = file.listFiles();
    for (File f : files) {
        String name = f.getName();
        System.out.println(name+"== 大小"+f.length());
    }
}
}

判断一个目录下是否有.jpg 结尾的文件,如果有,把后缀名改成 .png

public class MyTest {
public static void main(String[] args) {
    //判断一个目录下是否有.jpg 结尾的文件,如果有,把后缀名改成 .png
    File file = new File("E:/demo");
    //获取此目录下所有的文件 或目录
    File[] files = file.listFiles();
    for (File f : files) {
        if (f.isFile() && f.getName().endsWith(".jpg")) {
            String absolutePath = f.getAbsolutePath();
            String substring = absolutePath.substring(0, absolutePath.lastIndexOf("."));
            File newFile = new File(substring + ".png");
            f.renameTo(newFile);
        }
    }
}
}

删除多级目录

public class MyTest2 {
    public static void main(String[] args) {
    //删除多级目录
    File file = new File("E:\\demo");
    deleteFolder(file);
}

private static void deleteFolder(File file) {
    //获取此目录下所有的文件或者目录
    File[] files = file.listFiles();
    for (File f : files) {
        if (f.isFile()) {
            f.delete();
        } else {
            deleteFolder(f);
        }
    }
    file.delete();//删除自身这个空文件夹
}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值