Java File类常用方法与文件过滤器详解(java艾莉模组)

网友投稿 265 2022-08-01


目录File类File类常用的构造方法查看文件的相应信息遍历目录下的文件文件过滤器对子目录进行遍历删除文件及目录

File类

File类用于封装一个路径,这个路径可以是从系统盘符开始的绝对路径,也可以是相对于当前目录的相对路径,File类内部封装的路径可以指向一个文件,也可以指向一个目录,在File类中提供了针对这些目录或文件的一些常规操作。

File类常用的构造方法

File(String pathname)//通过指定的一个字符串类型的文件路径来创建一个新的File对象 File(String parent,String child)//根据指定的一个字符串类型的父路径和一个字符串类型的子路径创建一个File对象 File(File parent,String child)//根据指定的File类的父路径和字符串类型的子路径创建一个Fhttp://ile对象

查看文件的相应信息

package js;

import java.io.File;

public class XX {

public static void main(String[] args) {

File file=new File("example.txt");

//获取文件名称

System.out.println("文件名称:"+file.getName());

//获取文件的相对路径

System.out.println("文件的相对路径:"+file.getPath());

//获取文件的绝对路径

System.out.println("文件的绝对路径:"+file.getAbsolutePath());

//获取文件的父路径

System.out.println("文件的父路径:"+file.getParent());

//判断文件是否可读

System.ouhttp://t.println(file.canRead() ?"文件可读":"文件不可读");

//判断文件是否可写

System.out.println(file.canWrite() ?"文件可写":"文件不可写");

//判断是否是同一个文件

System.out.println(file.isFile() ?"是一个文件":"不是一个文件");

//判断是否是同一个目录

System.out.println(file.isDirectory() ?"文件是一个目录":"文件不是一个目录");

//得到文件最后的修改时间

System.out.println("最后修改时间为:"+file.lastModified());

//得到文件的大小

System.out.println("文件的大小为:"+file.length()+"bytes");

//是否成功删除文件

System.out.println("是否成功删除文件"+file.delete());

}

}

遍历目录下的文件

通过list()方法可以遍历某个指定目录下的所有文件名称

package JhiShi;

import java.io.File;

public class Example01 {

public static void main(String[] args) throws Exception{

File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se");

if(file.isDirectory()){

String[] names=file.list();

for (String name:names){

System.out.println(name);

}

http:// }

}

}

先通过File类里面的isDirectory()方法判断路径指向的是否为存在的目录,存在就调用list()方法,并且获得String类型的数组names,数组中包含这个目录下的所有文件的文件名,然后循环遍历数组的names,依次打印出每个文件的名字。

文件过滤器

package JhiShi;

import java.io.File;

import java.io.FilenameFilter;

public class Example02 {

public static void main(String[] args) throws Exception{

File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se");

FilenameFilter filter=new FilenameFilter() {

@Override

public boolean accept(File dir, String name) {

File currFile=new File(dir,name);

if(currFile.isFile()&&name.endsWith(".txt")){

return true;

}else{

return false;

}

}

};

if(file.exists()){

String[] lists=file.list(filter);

for (String name:lists){

System.out.println(name);

}

}

}

对子目录进行遍历

package JhiShi;

import java.io.File;

public class Example03 {

public static void main(String[] args) throws Exception{

File file=new File("C:\\Users\\lenovo\\IdeaProjects\\java se");

fileDir(file);

}

public static void fileDir(String[] args) {

File[]files=dir.listFiles();

for (File file:files){

if(file.isDirectory()){

fileDir(file);

}

System.out.println(file.getAbsoluteFile());

}

}

}

通过一个静态方法fileDir(),用于接收一个表示目录的File对象,先调用listFile()方法把该目录下所有的子目录和文件存到一个File类型的数组files中,然后遍历数组files,并且对遍历对象进行判断,如果是目录就从新调用fileDir()方法进行递归,如果是文件则输出文件的路径。

删除文件及目录

package JhiShi;

import java.io.File;

public class Example03 {

public static void main(String[] args) {

File file=new File("C:\\ABC");

deleteDir(file);

}

public static void deleteDir(String[] args) {

if(dir.exists){

File[]files=dir.listFiles();

for(File file:files){

if(files.isDirectory()){

deleteDir(file);

}else{

file.delete();

}

}

dir.delete();

}

}

}

定义了一个删除目录的静态方法deleteDir()来接收一个File类型的参数,调用listFiles()方法把这个目录下所有的子目录和文件保存到一个File类型的数组files中,然后遍历files,如果是目录从新调用deleteDir()方法进行递归,如果是文件则直接调用File的delete()方法删除,当删除完这个目录下的所有文件时,再删除这个目录。

注意:Java删除目录是从虚拟机直接删除而不是回收站,一旦删除无法恢复


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Web关键字填空示例详解
下一篇:Java深入讲解AWT实现事件处理流程(java的awt事件分为紧急事件和一般事件)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~