java file类

1:创建一个File对象

在这里插入图片描述

获取文件属性
public String getAbsolutePath(); 获取绝对路径。
public String getPath(); 获取路径。
public String getName(); 获取名称。
public String getParent(); 获取上层文件目录。若无,返回null。
public long length(); 获取文件长度。不能获取目录的长度。
public long lastModified(); 获取最后一次修改的时间,毫秒值。
public String[] list(); 获取指定目录下的所有文件或文件目录的名称数组。
public File[] listFiles(); 获取指定目录下的所有文件或文件目录的File数组。
import java.io.*;
public class Example10_1 {
   public static void main(String args[]) {
      File f = new File("C:\\ch10","Example10_1.java");
      System.out.println(f.getName()+"是可读的吗:"+f.canRead());
      System.out.println(f.getName()+"的长度:"+f.length());
      System.out.println(f.getName()+"的绝对路径:"+f.getAbsolutePath());
      System.out.println(f.getName()+"的最后修改时间:"+f.lastModified());
      File file = new File("new.txt");
      System.out.println("在当前目录下创建新文件"+file.getName());
      if(!file.exists()) {
         try {
              file.createNewFile();
              System.out.println("创建成功");
         }
         catch(IOException exp){}
      }
   }
}

2:重命名并移动文件

//public boolean renameTo(File dest); 把文件重命名为指定的文件路径名。
      //以file1.renameTo(file2)为例,要返回true,需要file1在硬盘中是存在的,而file2不能在硬盘中存在。
      //上面的测试执行后,成功将test1.txt文件转移到d://AAA路径下并将名称修改为test2.txt
      File file5 = new File("C:\\Users\\windows\\Desktop\\FileOperate\\test.txt");//硬盘上存在test1.txt
      File file6 = new File("C:\\Users\\windows\\Desktop\\test2.txt");//硬盘上不存在test2.txt
      boolean b = file5.renameTo(file6);
      System.out.println(b);

3:判断文件相关属性

public boolean isDirectory();判断文件是否是文件目录。
public boolean isFile();判断是否是文件。
public boolean exists();判断是否存在。
public boolean canRead();判断是否可读。
public boolean canWrite();判断是否可写。
public boolean isHidden();判断是否隐藏

  File file = new File("new.txt");//该文件提前在硬盘中存在
        System.out.println("是否是文件目录:"+file.isDirectory());
        System.out.println("是否是文件:"+file.isFile());
        System.out.println("是否存在:"+file.exists());
        System.out.println("是否可读:"+file.canRead());
        System.out.println("是否可写:"+file.canWrite());
        System.out.println("是否隐藏:"+file.isHidden());

在这里插入图片描述
若将上面第一行代码中文件名改为new1.txt,则下方输出全为false
File 类是对文件系统的映射 并不是硬盘上真实的文件
所以 new File(“xxx.xxx”) 只是在内存中创建File文件映射对象,而并不会在硬盘中创建文件

 File file = new File("new1.txt");//该文件提前在硬盘中该程序文件目录下存在

在这里插入图片描述

4:在硬盘中创建真实存在的文件

使用构造器实例化一个File,只是在内存中创建了这个对象。下面介绍的File类的创建方法才是真正在硬盘上创建一个文件或文件目录。

public boolean createNewFile();
创建文件,若文件存在则不创建,返回false
public boolean mkdir();
创建文件目录。如果此文件目录存在,或此文件目录的上层目录不存在,就不创建了。
public boolean mkdirs();
创建文件目录,如果上层文件目录不存在,一并创建

注意:如果在创建文件或创建文件目录时,没有写盘符路径, 默认在项目路径下。

File file = new File("hi.doc");//在磁盘创建一个文件
      if (!file.exists()) {
          file.createNewFile();
          System.out.println("创建成功");
      } else {
          file.delete();
          System.out.println("删除成功");
      }

在这里插入图片描述
在这里插入图片描述

 File file = new File("d:\\aa");//在磁盘创建一个文件夹
      boolean mkdir = file.mkdir();//若上层目录不存在,返回false
      if (mkdir) {
          System.out.println("创建成功");
      } else {
          System.out.println("创建失败");
      }

      File file1 = new File("d:\\bb\\cc\\dd");
      boolean mkdirs = file1.mkdirs();//若上层目录不存在,一并创建
      if (mkdirs) {
          System.out.println("创建成功");
      } else {
          System.out.println("创建失败");
      }

在这里插入图片描述
在这里插入图片描述

File file1 = new File("d:\\bb\\cc\\dd");
      boolean mkdirs = file1.mkdir();//若上层目录不存在,返回false
      if (mkdirs) {
          System.out.println("创建成功");
      } else {
          System.out.println("创建失败");
      }

在这里插入图片描述

5.删除文件

public boolean delete(); 删除文件或文件夹
删除时,该文件目录内不能包含文件或文件目录。另外需注意:Java中的删除不走回收站。

//先创建d:\\bb\\cc\\dd 文件夹,后尝试删除cc文件夹,但c下面还有子文件夹,故删除失败
File file1 = new File("d:\\bb\\cc\\dd");
      boolean mkdirs = file1.mkdirs();//若上层目录不存在,则创建上层目录
      if (mkdirs) {
          System.out.println("创建成功");
      } else {
          System.out.println("创建失败");
      }
      File file2 = new File("d:\\bb\\cc");//cc下面还有子文件夹,故删除失败
      System.out.println(file2.delete());

在这里插入图片描述

二:练习

File file = new File("d:\\aa\\hello.txt");

      File file1 = new File(file.getParent(),"bb");
      file1.mkdir();//创建文件夹
      File file2 = new File(file.getParent(),"cc.doc");
      file2.createNewFile();//创建文件

      file.delete();//删除

在这里插入图片描述
执行前
在这里插入图片描述
执行后
在这里插入图片描述
2:判断指定目录下,是否有后缀名为.的docx文件,如果有,就输出该文件名称。
在这里插入图片描述
方法一:使用String[] list();

 File file = new File("C:\\Users\\windows\\Desktop");
String[] list = file.list();//注意list()返回类型时String
        for (String f : list) {
            if (f.endsWith(".docx")) {
                System.out.println(f);
            }
        }

方法二:使用File[] listFiles();

 File file = new File("C:\\Users\\windows\\Desktop");
      File[] listFiles = file.listFiles();
        for (File f : listFiles) {
            if (f.getName().endsWith(".docx")) {
                System.out.println(f.getName());
            }
        }

方法三:使用FileFilter过滤器

File file = new File("C:\\Users\\windows\\Desktop");
    File[] listFiles = file.listFiles(new FilenameFilter() {
        @Override
        public boolean accept(File dir, String name) {
            return name.endsWith(".png");
        }
    });//匿名类
    for (File f : listFiles) {
        System.out.println(f.getName());
    }

补充内容
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值