ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Java中的File

Java中的File 文章目录前言一、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.根据字符串表示的路径创建文件对象StringpathnameD:\\WORK\\Study\\a.txt;FilefilenewFile(pathname);System.out.println(file);//D:\WORK\Study\a.txt// 2.父级路径D:\WORK\Study 子路径a.txtStringparentD:\\WORK\\Study;Stringchilda.txt;Filefile1newFile(parent,child);System.out.println(file1);//D:\WORK\Study\a.txt// 3.把File表示的路径和字符串表示的路径拼接Filefile2newFile(D:\\WORK\\Study);Stringchild2a.txt;Filefile3newFile(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.创建文件FilefilenewFile(D:\\WORK\\Study\\aaa);if(!file.exists()){file.mkdirs();//如果文件不存在创建多级文件夹}Filefile1newFile(file,aaa.txt);booleanbfile1.createNewFile();//创建一个新的空的文件if(b){System.out.println(创建成功);}else{System.out.println(创建失败);}2.单个文件夹中查找文件定义一个方法找某一个文件夹中是否有以.txt结尾的文件publicstaticvoidmain(String[]args){FilefilenewFile(D:\\WORK\\Study\\aaa);booleanbhaveTxt(file);System.out.println(b);}publicstaticbooleanhaveTxt(Filefile){File[]fosfile.listFiles();//获取当前路径下的所有内容for(Filefo:fos){if(fo.getName().endsWith(.txt)){returntrue;}}returnfalse;}3.找到电脑中所有以.txt结尾的文件。需要考虑子文件夹publicstaticvoidmain(String[]args){haveTxt();}publicstaticvoidhaveTxt(){File[]fileFile.listRoots();for(Filef:file){haveTxt(f);}}publicstaticvoidhaveTxt(Filefile){File[]fosfile.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){FilefilenewFile(D:\\WORK\\Study\\aaa);delete(file);}//删除aaa的文件夹publicstaticvoiddelete(Filefile){File[]fosfile.listFiles();//获取当前路径下的所有内容if(fos!null){for(Filefo:fos){if(fo.isFile()){fo.delete();}else{delete(fo);}}}file.delete();}5.统计一个文件夹中每种文件的个数并打印考虑子文件夹publicstaticvoidmain(String[]args){FilefilenewFile(D:\\WORK);HashMapString,IntegerfileCountgetFileCount(file);System.out.println(fileCount);}publicstaticHashMapString,IntegergetFileCount(Filefile){HashMapString,IntegermapnewHashMapString,Integer();File[]filesfile.listFiles();if(files!null){for(Filef:files){if(f.isFile()){Stringnamef.getName();String[]splitname.split(\\.);if(split.length2){StringendNamesplit[split.length-1];if(map.containsKey(endName)){intcountmap.get(endName);count;map.put(endName,count);}else{map.put(endName,1);}}}else{HashMapString,IntegersonMapgetFileCount(f);SetMap.EntryString,IntegerentriessonMap.entrySet();for(Map.EntryString,Integerentry:entries){Stringkeyentry.getKey();intvalueentry.getValue();if(map.containsKey(key)){intcountmap.get(key);countvalue;map.put(key,count);}else{map.put(key,value);}}}}}returnmap;}
返回列表