Java中的File
2026/9/15 21:34:36 网站建设 项目流程

文章目录

  • 前言
  • 一、File的常见构造方法
  • 二、File中常见的成员方法
  • 三、综合练习
    • 1.创建文件
    • 2.单个文件夹中查找文件
    • 3.找到电脑中所有以.txt结尾的文件。(需要考虑子文件夹)
    • 4. 删除一个多级文件夹
    • 5.统计一个文件夹中每种文件的个数并打印(考虑子文件夹)

前言

File是Java中用于表示文件和文件夹路径的类。它既可以表示一个文件的路径,也可以表示一个文件夹的路径。通过File对象,我们可以对文件或文件夹进行创建、删除、获取信息等操作。

java.io.File 是 Java 中用于表示文件或目录路径名的类。它位于 java.io 包下,实现了 Serializable 和 Comparable 接口。

一、File的常见构造方法

方法名称说明
public File(String pathname)根据文件路径创建文件对象
public File(String parent,String child)根据父路径名和子路径名创建文件对象
public File(File parent,String child)根据父路径对应文件对象和子路径名创建文件对象
// 1.根据字符串表示的路径创建文件对象Stringpathname="D:\\WORK\\Study\\a.txt";Filefile=newFile(pathname);System.out.println(file);//D:\WORK\Study\a.txt// 2.父级路径D:\WORK\Study 子路径:a.txtStringparent="D:\\WORK\\Study";Stringchild="a.txt";Filefile1=newFile(parent,child);System.out.println(file1);//D:\WORK\Study\a.txt// 3.把File表示的路径和字符串表示的路径拼接Filefile2=newFile("D:\\WORK\\Study");Stringchild2="a.txt";Filefile3=newFile(file2,child2);System.out.println(file3);//D:\WORK\Study\a.txt

二、File中常见的成员方法

方法名称说明
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()返回文件最后修改的时间(时间毫秒值)
public boolean createNewFile()创建一个新的空的文件
public boolean mkdir()创建单级文件夹
public boolean mkdirs()创建多级文件夹
public boolean delete()删除文件,空文件夹
public File[] listFiles()获取当前路径下所有内容
public static File[] listRoots()列出可用的文件系统根(获取系统中所有的盘符)
public String[] list()获取当前路径下的所有内容(仅获取名字)
public String[] list(FilenameFilter filter)利用文件名过滤器获取当前该路径下的所有内容
public String[] listFiles()获取当前路径下的所有内容
public String[] listFiles(FileFilter filter)利用文件名过滤器获取当前该路径下的所有内容
public String[] listFiles(FilenameFilter filter)利用文件名过滤器获取当前该路径下的所有内容

三、综合练习

1.创建文件

Filefile=newFile("D:\\WORK\\Study\\aaa");if(!file.exists()){file.mkdirs();//如果文件不存在,创建多级文件夹}Filefile1=newFile(file,"aaa.txt");booleanb=file1.createNewFile();//创建一个新的空的文件if(b){System.out.println("创建成功");}else{System.out.println("创建失败");}

2.单个文件夹中查找文件

定义一个方法找某一个文件夹中,是否有以.txt结尾的文件

publicstaticvoidmain(String[]args){Filefile=newFile("D:\\WORK\\Study\\aaa");booleanb=haveTxt(file);System.out.println(b);}publicstaticbooleanhaveTxt(Filefile){File[]fos=file.listFiles();//获取当前路径下的所有内容for(Filefo:fos){if(fo.getName().endsWith(".txt")){returntrue;}}returnfalse;}

3.找到电脑中所有以.txt结尾的文件。(需要考虑子文件夹)

publicstaticvoidmain(String[]args){haveTxt();}publicstaticvoidhaveTxt(){File[]file=File.listRoots();for(Filef:file){haveTxt(f);}}publicstaticvoidhaveTxt(Filefile){File[]fos=file.listFiles();//获取当前路径下的所有内容if(fos!=null){for(Filefo:fos){if(fo.isFile()){if(fo.getName().endsWith(".txt")){System.out.println(fo.getName());}}else{haveTxt(fo);}}}}

4. 删除一个多级文件夹

publicstaticvoidmain(String[]args){Filefile=newFile("D:\\WORK\\Study\\aaa");delete(file);}//删除aaa的文件夹publicstaticvoiddelete(Filefile){File[]fos=file.listFiles();//获取当前路径下的所有内容if(fos!=null){for(Filefo:fos){if(fo.isFile()){fo.delete();}else{delete(fo);}}}file.delete();}

5.统计一个文件夹中每种文件的个数并打印(考虑子文件夹)

publicstaticvoidmain(String[]args){Filefile=newFile("D:\\WORK");HashMap<String,Integer>fileCount=getFileCount(file);System.out.println(fileCount);}publicstaticHashMap<String,Integer>getFileCount(Filefile){HashMap<String,Integer>map=newHashMap<String,Integer>();File[]files=file.listFiles();if(files!=null){for(Filef:files){if(f.isFile()){Stringname=f.getName();String[]split=name.split("\\.");if(split.length>=2){StringendName=split[split.length-1];if(map.containsKey(endName)){intcount=map.get(endName);count++;map.put(endName,count);}else{map.put(endName,1);}}}else{HashMap<String,Integer>sonMap=getFileCount(f);Set<Map.Entry<String,Integer>>entries=sonMap.entrySet();for(Map.Entry<String,Integer>entry:entries){Stringkey=entry.getKey();intvalue=entry.getValue();if(map.containsKey(key)){intcount=map.get(key);count+=value;map.put(key,count);}else{map.put(key,value);}}}}}returnmap;}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询