File类

一、File概述

File是sun公司给java程序员提供的一个操作文件和文件夹的一个类

路径问题:
相对路径和绝对路径

相对路径:
基于你目前的环境做出一个判断
相对于谁,得有一个参照物
. 当前工作目录
… 当前工作目录的父目录/上一级目录

绝对路径:
根目录 E:\JAVA\qianfeng\完整版资源\JAVA_SE\day17完整版资源\demo\day17_wb\src\com\qfedu\b_file

个人建议:

使用 / 的原因
1./支持windows和Linux系统的
2./也是以后web网站访问资源的一种写法 url http://www.baidu.com:443/index.html

二、File构造方法

File(String pathName);根据指定的路径的名字创建与之对应的文件或者文件夹的File类对象

File(String parent, String child);根据指定文件的父级目录,和对应的子文件夹或者是子文件,来创建对应的File对象

File(File parent,String child );根据指定文件的父级目录的File对象,对应的子文件夹或者是子文件,来创建对应的File对象

示例
import java.io.File;

/**
 * @author xue_yun_xiang
 * @create 2021-03-17-19:04
 */
public class Demo2 {
    public static void main(String[] args) {
        File file1 = new File("E:/JAVA/qianfeng/1.txt");
        File file2 = new File("E:/JAVA/qianfeng", "2.txt");
        File file3 = new File(new File("E:/JAVA/qianfeng"), "3.txt");
        //File.separator就相当于  /
        File file4 = new File("E:" + File.separator + "JAVA" + File.separator + "qianfeng" + File.separator + "4.txt");
        System.out.println(file1);
        System.out.println(file2);
        System.out.println(file3);
        System.out.println(file4);
    }
}

三、File的常用方法

File创建文件和创建文件夹

创建一个新的文件,通过File类对象来调用。创建的是当前File类对象保存的路径地址对应的文件

【注意事项】
1.当前操作的是普通文件,必须有后缀
2.操作文件的路径如果不合法,就直接返回false,路径不存在
3.操作的文件夹没有写入的权限。返回值也是false
4.操作的文件已经存在,也会返回false
5.硬盘坏了,也会返回false

boolean createNewFile();
1、用于创建文件,仅仅是文件,不包括文件夹(目录)
2、当此抽象路径名不存在指定名称的文件时才创建
3、如果该路径下已有指定名称的文件,则不会创建,返回false。
4、当指定的抽象路径不存在时会报IOException:系统找不到指定的路径。

boolean mkdir();
1、用于创建此抽象路径名指定的文件的上一级目录。
2、仅仅是创建目录,不创建文件;
3、指定的文件名为test.txt,如果在“C:/Users/Desktop/djomega"下没有test这个目录,则会创建,返回true;反之,不创建,返回false。
但是,如果连djomega这个目录都没有,则返回false。
4、只能创建一级的文件夹目录

boolean mkdirs();可以创建多级文件夹目录。用的比较多

boolean renameTo(File file);移动重命名

示例
import java.io.File;
import java.io.IOException;

/**
 * @author xue_yun_xiang
 * @create 2021-03-17-19:59
 */
public class Demo3 {
    public static void main(String[] args) throws IOException {
        File file1 = new File("E:/JAVA/qianfeng/1.txt");
        System.out.println(file1.createNewFile());

        File file2 = new File("E:/JAVA/qianfeng/2");
        System.out.println(file2.mkdir());

        File file3 = new File("E:/JAVA/qianfeng/3/4/5");
        System.out.println(file3.mkdirs());
    }
}

File类删除文件或者文件夹

boolean delete();立即删除
1.这个delete直接从磁盘上面清除数据,不会在回收站
2.删除操作不能删除非空文件,文件夹如果有内容的话,删不掉

deleteOnExit这个方法程序退出以后删除对应的文件夹和文件
一般删除软件的时候运行过程中删除保存的日志等缓存文件。可以节约咱们磁盘。

示例:
import java.io.File;
import java.io.IOException;
import java.util.Scanner;

/**
 * @author xue_yun_xiang
 * @create 2021-03-17-20:09
 */
public class Demo4 {
    public static void main(String[] args) throws IOException {
        File file1 = new File("E:/JAVA/qianfeng/1.txt");
        System.out.println(file1.createNewFile());//true

        //System.out.println(file1.delete());//true

        file1.deleteOnExit();
        new Scanner(System.in).nextInt();
    }
}

File类的判断方法

boolean isFile();判断是否是普通文件
boolean isDirectory();判断是否是文件夹
boolean isHidden();是不是隐藏文件
boolean isAbsolute();是不是以绝对路径创建的一个对象
boolean exists();判断文件或者文件夹是否存在

File类的get方法

String getName();获取文件或者文件夹的名字
String getPath();获取当前创建的File对象的路径
String getParent();获取操作当前文件夹或者文件的父级目录
String getAbsolutePath();获取当前File类对象的绝对路径 (有用)

File类的文件列表方法

static File[] listRoots();获取当前所有盘符的File类对象,不用!!!该方法只能只适用于windows操作系统。Linux和max都不能使用

String[] list();获取File类对象所对应文件夹。所有的子文件和子文件夹的名字

File[] listFiles();获取File类对象对应的文件夹,所有的子文件和子文件夹的对象

File类的特殊方法

long length();获取文件占用硬盘的字节数
long lastModified();获取文件最后的修改时间,返回值是一个时间戳,时间戳:自1970年01月01日 00:00:00 到现在的秒数

示例
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author xue_yun_xiang
 * @create 2021-03-18-8:44
 */
public class Demo7 {
    public static void main(String[] args) {
        File file1 = new File("E:/JAVA/qianfeng/1.txt");
        System.out.println(file1.length());

        System.out.println(file1.lastModified());

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
        String format = simpleDateFormat.format(new Date(file1.lastModified()));
        System.out.println(format);
    }
}

运行结果:

15
1616028323946
2021-03-18 08:45:23
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值