0
点赞
收藏
分享

微信扫一扫

将本地项目上传到Github仓库或Gitee仓库

眸晓 2023-05-22 阅读 74

1.概述

  • File对象就表示一个路径,可以是文件的路径、也可以是文件夹的路径
  • 这个路径可以是存在的,也允许是不存在的

2.常见的构造方法

  • public File(String pathname):根据文件路径创建文件对象
  • public File(string parent,string child):根据父路径名字符串和子路径名字符串创建文件对象
  • public File(Fileparent,string child):根据父路径对应文件对象和子路径名字符串创建文件对象

案例1:

  //根据字符串表示的路径,创建对象
String s = "C:\\Users\\GZL\\Desktop\\11.txt";
File f1 = new File(s);
System.out.println(f1);//C:\Users\GZL\Desktop\11.txt

//父级路径和子级路径进行拼接
String parent = "C:\\Users\\GZL\\Desktop";
String child = "11.txt";
File f2 = new File(parent,child);
System.out.println(f2);//C:\Users\GZL\Desktop\11.txt

//3.
File parent2 = new File("C:\\Users\\GZL\\Desktop");
File f4 =new File(parent2,child);
System.out.println(f4);//C:\Users\GZL\Desktop\11.txt

3.常见的成员方法

1. (判断,获取)

  • public boolean isDirectory():判断此路径名表示的File是否为文件夹
  • public boolean isFile():判断此路径名表示的File是否为文件
  • public boolean exists():判断此路径名表示的File是否存在
  • public long length():返回文件的大小(字节数量)

无法获取文件夹大小。

  • public string getAbsolutePath():返回文件的绝对路径
  • public string getPath():返回定义文件时使用的路径
  • public String getName():返回文件的名称,带后缀
  • public long lastModified():返回文件的最后修改时间(时间毫秒值)

案例2:

        File f1 =new File("C:\\Users\\GZL\\Desktop\\11.txt");
System.out.println(f1.isDirectory());//false
System.out.println(f1.isFile());//true
System.out.println(f1.exists());//true

System.out.println(f1.length());//39

System.out.println(f1.getAbsoluteFile());//C:\Users\GZL\Desktop\11.txt

File f2 = new File("day30\\a.txt");
System.out.println(f2.getAbsoluteFile());//G:\JavaReview\farmerandlord\day30\a.txt

System.out.println(f2.getPath());//day30\a.txt

System.out.println(f2.getName());//a.txt

long time = f1.lastModified();
System.out.println(time);//1684657779127
Date date = new Date(time);
System.out.println(date);//Sun May 21 16:29:39 CST 2023

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
System.out.println(sdf1.format(date));//2023年05月21日16时29分39秒

2.(创建,删除) 

  • public boolean createNewFile():创建一个新的空的文件
  • public boolean mkdir():创建单级文件夹
  • public boolean mkdirs():创建多级文件夹
  • public boolean delete():删除文件、空文件夹

delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站。

案例3:

        //创建文件
File f1 =new File("E:\\aaa\\c.txt");
boolean b = f1.createNewFile();
System.out.println(b);
//创建单级文件夹
File f2 = new File("E:\\aaa\\bbb");
System.out.println(f2.mkdir());
//创建多级文件夹
File f3 = new File("E:\\aaa\\ccc\\ddd");
System.out.println(f3.mkdirs());
//删除文件
System.out.println(f1.delete());
//删除文件夹
System.out.println(f2.delete());

 3.获取并遍历

  • public File[] listFiles():获取当前该路径下所有内容

注意:

1.当调用者File表示的路径不存在时,返回null。

2.当调用者File表示的路径是文件时,返回null。

3.当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组。

4.当调用者File表示的路径是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回。

5.当调用者File表示的路径是需要权限才能访问的文件夹时,返回null。

案例4:


File f1 = new File("E:\\aaa");
File[] files = f1.listFiles();
for (File file : files) {
System.out.println(file);
}
  •  public static File[] listRoots():列出可用的文件系统根
  • public string[ ] list():获取当前该路径下所有内容
  • public string[ ] list(FilenameFilter filter):利用文件名过滤器获取当前该路径下所有内容
  • public File[] listFiles(FileFilter filter):利用文件名过滤器获取当前该路径下所有内容
  • public File[] listFiles(FilenameFilter filter):利用文件名过滤器获取当前该路径下所有内容

案例5:

        //获取系统所有盘符
File[] arr = File.listRoots();
System.out.println(Arrays.toString(arr));
//获取当前路径下所有内容名字
File f1 = new File("E:\\aaa");
String[] arr2 = f1.list();
for (String s : arr2) {
System.out.println(s);
}
//文件过滤器
String[] arr3 = f1.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File src = new File(dir,name);
return src.isFile() && name.endsWith(".txt");
}
});

System.out.println(Arrays.toString(arr3));//[abc.txt, acb.txt]
//
File[] arr4 = f1.listFiles();
for (File file : arr4) {
if (file.isFile() && file.getName().endsWith(".txt")){
System.out.println(file);
}
}
//文件过滤器
File[] arr5 = f1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isFile() && pathname.getName().endsWith(".txt");
}
});
System.out.println(Arrays.toString(arr5));
//父级路径加子级路径过滤
File[] arr6 = f1.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
File src = new File(dir, name);
return src.isFile() && src.getName().endsWith(".txt");
}
});
System.out.println(Arrays.toString(arr6));
举报

相关推荐

0 条评论