Java——File类

File类源自java.io.File,用于对文件及其路径的各种操作,如:生成、删除、修改、读取等等功能。
File属于IO下,所以它也常常是和IO流的操作类一同使用,通过对文件的操作,实现我们对数据的处理。

构造方法

以文件名路径创建文件对象:

File(String pathname) 	

演示:

File file=new File("E:\\test\\test01.txt");

以父路径和子路径名字创建文件对象:

File(String parent, String child) 

演示:

 File file = new File("E:\\test", "1.txt");
 
 System.out.println(file.getPath());
 //输出结果:E:\test\1.txt

以父对象和子路径名字创建文件对象:

File(File parentFile, String child) 

演示:

    File parentFile= new File("E:\\test");
    File file = new File(parentFile, "1.txt");
 
    System.out.println(file.getPath());
    //输出结果:E:\test\1.txt

常用方法

文件或目录不存在的情况下,通过File对象创建空文件或目录:
public boolean createNewFile()throws IOException

演示:

	File f=new File("E:/电脑桌面/jar/files/create.txt");  
    try{  
         f.createNewFile();  
         //不存在文件时,创建一个新的空文件。      
        }catch (Exception e) {  
            e.printStackTrace();  
        }  
     f.mkdirs();  //创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 

删除此抽象路径名表示的文件或目录:
public boolean delete()

创建对象文件的目录:
public boolean mkdir()
public boolean mkdirs()
//二者区别为:mkdir若没有完整的父目录支撑,无法创建;而mkdirs则无需父目录完整,若残缺则将直接创建完整目录。

演示:

	File f=new File("E:\\亚洲\\中国\\东北");
    //boolean flag=f.mkdir();
    //若结构中有一个不存在,就不会创建
    boolean flag=f.mkdirs();
    //目录结构中有残缺也无妨,都会创建整个目录

重命名文件:
public boolean renameTo(File dest)

获取对象文件名:
public String getName()

获取对象路径:
public String getPath()

判断对象是否为标准文件:
//如果文件的路径不是一个目录,然后满足一些作为文件的其他标准,那么结果返回true
public boolean isFile()

判断文件是否存在:
public boolean exists()

判断文件路径是否为一个目录:
public boolean isDirectory()

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

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

获取文件字节大小:
public long length()
//在这里我们会发现,一个汉字输出的字节数会是“3”,这又得谈起编码方式来了,这里引用的一位大神的解释,感兴趣的同学简单看一下:在UTF-8中,一个汉字为什么需要三个字节?

返回文件最后一次被修改时间:
//用当前时间与历元(1970 年 1 月 1 日,00:00:00 GMT)的时间差计算所得,单位是毫秒。若文件不存在,或发生错误,则返回 0L。
public long lastModified()

//这里我们可以对它进行一个优化,返回我们易读的时间格式:

File f = new File("E:\\File01.txt");
if (f.exists()){
		java.text.SimpleDateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
		String dateTime=df.format(new Date(f.lastModified()));
		System.out.println(dateTime);
	}
	//输出结果:2021-05-31 21:19:40.052

返回目录下的文件路径名数组:
public File[] listFiles()

演示:

   File[] paths = f.listFiles(filter);
	    for (File path : paths) {
	           System.out.println(path);
	    }

传入一个过滤器,返回满足条件的目录下的文件和路径名数组:
public File[] listFiles(FileFilter filter)

演示:

	FileFilter filter = new FileFilter() {
	@Override
	public boolean accept(File pathname) {
	       retrun  pathname.Getname().endwith(".txt");
	       }
	};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值