File类

文章介绍了Java中如何使用File类进行文件操作,包括创建、获取属性、重命名和删除文件。此外,还讲解了如何通过FileNameFilter接口实现文件过滤,只显示特定类型的文件(如.java文件)。提供的示例代码展示了如何列出指定目录下所有的.java文件。
摘要由CSDN通过智能技术生成

1、File类

  • File类在java.io.*包下
  • 创建文件对象
    • File myFile;
    • myFile = new File(“myfile.txt”);
    • myFile = new File(“Mydocs”,“myfile.text”) 两个参数分别是指定的父路径和文件名
  • 在Java中,将文件路径也当做文件来处理

2、File对象常用方法

  • 和文件名相关

    String getName()//取得文件或者目录的名字

    String getPath()//取得文件或者目录的路径

    String getAbsolutePath() //取得文件或者目录的绝对路径

    String getParent()// 取得文件或者目录的根路径

    boolean renameTo(File newName)//给File代表的文件改名文件检测

    boolean exists()//判断文件或目录是否存在

    boolean canWrite() //判断文件是否可写

    boolean canRead() //判断文件是否可读

    boolean isFile()//判断File对象是否代表文件

    boolean isDirectory() //判断File对象是否代表目录

    boolean isAbsolute() //判断File对象代表文件或目录是否是绝对路径名表示

  • 获取常规文件信息

    long lastModified()//返回File对象代表文件或目录最后一次修改的时间

    long length()//返回File对象代表文件的长度(字节)

    boolean delete()//删除File对象代表文件或目录 目录操作

    boolean mkdir()//创建由File对象代表的目录

    String[] list() //如果File对象代表目录,则返回该目录下所有文件和目录列表

3、文件过滤

  • 回调----通过在File中的list()方法中加入FileNameFilter参数,可以只将满足条件的文件列出来
  • 策略设计模式----FileNameFilter是一个接口,只有一个accept()方法需要实现

4、实例代码:将本地文件读取出来

package test;
import java.io.File;
import java.io.FilenameFilter;

class JavaFilter implements FilenameFilter {
	public JavaFilter()
	{
	}
	/**
	*只接受java文件,策略
	*/
	public boolean accept(File dir,String name)
	{
		File f = new File(dir,name);
		//如果接收到的文件还是一个目录
		if(f.isDirectory()) 
		 //递归搜索
		{
		String[] javaFiles=f.list(new JavaFilter());
	     //直到文件是文件名而不是目录,继续执行下面的代码  
		for(int i=0;i<javaFiles.length;i++)
		{
			System.out.println(javaFiles[i]);
		}
		}
		 //返回只有java后缀的文件名
	    return name.endsWith(".java");
	}

}

public class JavaList {
	public static void main(String args[])
	{
		//创建File对象 (Java中可以把文件目录当做文件,这里的D:/test1就是一个目录下的文件夹)
		File currDir=new File("D:/test1");
		//如果文件是一个目录
     	if (currDir.isDirectory())
		{String[] javaFiles=currDir.list(new JavaFilter());
         //file.list()表示如果File对象代表目录,则返回该目录下所有文件和目录列表。此处就是,将list内符合条件的文件名全部返回到String数组中
         
         //将数组里的文件名输出
		  for(int i=0;i<javaFiles.length;i++)
		  {
			  //将数组输出
			System.out.println(javaFiles[i]);
		  }
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zero摄氏度

感谢鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值