JAVA File 类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40990836/article/details/78954823

File 类
所属java . io包
File 类 操作对象: 文件
功能:

  1. 可以独立完成用户对文件及文件夹的操作要求
  2. 可以辅助io包下其他流类对文件的具体操作(eg:读 | 写) 复制 剪切 网络请求 数据解析
public class File01{
    public static void main(String[] args){
        Logger log = LogManager.getLogger();
        //  需要借助log4j2,创建一个单独向文件中 输出错误信息的log
        //  1.完善配置信息
        //  1)增加向文件输出的Appender
        //  2)设置对应输出的Logger
        //  2.在类中 创建Logger 对应的 logger对象
        //  1)在特定的Logger 在使用时,便会向文件中输出错误信息
        Logger flLog = LogManager.getLogger("fllog");
        log.info("这是File01文件");
        //   如何创建File实例
        //   1.通过文件路径名(字符串)来创建File实例
        //   File(String pathname)
        //   1)通过绝对路径获取桌面File 实例
        //   i)拿到桌面绝对路径字符串形式
       String path = "/Users/lanou/Desktop";
       //    ii)通过路径字符串构造出File
       File dtFile = new File(path);
       //    iii)验证实例是否正确
       log.info(dtFile.exists());

        //   2)通过相对路径 获取 log4j2.xml File 实例
        //   i)首先明确File 构造时的相对路径的默认文件夹
        //   思考:项目根目录??  项目根目录src下  WEB项目   WEB_INF文件夹
        //   ii)确定目标文件与相对路径默认文件夹的关系
        //   关系:src/log4j2.xml ? log4j2.xml?
        //   iii)通过对应字符串构造出File 实例
        String logPath = "./src/log4j2.xml";
        File logFile = new File(logPath);
        //   iv)验证实例是否正确
        log.info(logFile.exists());
        //   结论:默认文件夹 = 项目根目录

        //  拓展:
        //  绝对路径根目录:/
        //  相对路径跟目录(当前目录): ./
        //  当前目录的上一级目录: ../

        //  2.通过父级File 对象,确定子级并生成File 实例
        //  File(File parent,String child)
        //  i)获取父级File 对象,并确定子级路径字符串
        //  dtFile test
        String child = "test";
        //  ii)生成子级File 实例
        File testFile = new File(dtFile , child);
        //  iii)验证File实例
        log.info(testFile.exists());

        //  3.通过父级路径,子级路径,生成file实例
        //  File(File parent,String child)
        //  返回桌面找到test 文件夹
        testFile = new File("./../../Desktop","test");
        log.info(testFile.exsits());

        //  4.通过URI对象,生成File实例
        //  File (URI uri)
        //  i)确定目标的URI字符串形式
        String uriStr = "file:///Users/lanou/Desktop/test";
        //  ii)生成目录URI对象
        URI uri = null;
        //  可能会报出异常
        try{
        uri = new URI(uriStr);
        }catch(URISyntaxException e){
            flLogger.warn("URISyntaxException:" + e.getMessage());
        }
        //  iii) 通过URI 对象生成File 实例
        //  注:File 构造器可以解析 file://协议uri
        try{
            //  指针的重指向
            testFile = new File(uri);
            //  catch  匹配异常
        }catch(IllegalArgumentException e){
            flLogger.warn("IllegalArgumentException" + e.getMessage());
        }
        log.info(testFile.exists())
    }
}

File 类中的常用方法:

//File对象是否存在
File f1 = new File("./src/log4j2.xml");
ROOT_LOG.info("log4j2.xml存在情况:" + f1.exists());

//文件的大小
ROOT_LOG.info("文件大小" + f1.length());

// 空间
File dtFile = new File("/Users/lanou/Desktop");
ROOT_LOG.info("总空间: " + dtFile.getTotalSpace());
ROOT_LOG.info("总余空间:" + dtFile.getFreeSpace());
ROOT_LOG.info("可用空间:" + dtFile.getUsableSpace());

// 相关判断
// 1)是否是文件夹
// 2)是否是文件
// 3)是否是隐藏文件
ROOT_LOG.info("桌面是文件夹吗?" + dtFile.isDirectory());
ROOT_LOG.info("XML是文件吗?" + f1.isFile());

//  获取项目跟目录下 .project 隐藏文件 .setting 隐藏文件夹
File f2 = new File("./.project");
File f3 = new File("./.settings");
ROOT_LOG.info(".project隐藏文件:" + f2.isHidden());
ROOT_LOG.info(".settings隐藏文件夹:" + f3.isHidden());

//  4)是否是绝对路径
ROOT_LOG.info("xml是否是绝对路径获取:" + f1.isAbsloute());
ROOT_LOG.info("桌面是否是绝对路径获取:" + dtFile.isAbsloute());

//  5.文件本身相关操作
//  1)文件名
ROOT_LOG.info("f1的文件名 :" + f1.getName());
//  2)文件全名,(拥有路径信息)
ROOT_LOG.info("f1的文件名:" + f1.getPath());
ROOT_LOG.info("f1的文件名:" + f1.getAbsolutePath());

//  3)获取父级
ROOT_LOG.info("f1的父级:" + f1.getPartent());  //  返回的是字符串
ROOT_LOG.info("f1的父级:" + f1.getParentFile());   //  返回的是对象

创建文件

  1. 创建无后缀名文件
  2. 创建有后缀名文件
  3. 获取存放文件的路径
  4. 确定所创建的文件名
  5. 创建目标文件
public class File03{
    public static final Logger ROOT_LOG = logManager.getLogger();
    public static final Logger FILE_LOG = logManager.getLogger(fllog);
    public static void main(String[] args){
        String path = "file03";
        String name1 = "new1";
        String name2 = "new1.txt";

        File f1 = new File(path , name1);
        File f2 = new File(path , name2);

        //  万物初为假
        boolean res = false;
        try{
            res = f1.creatNewFile();
            res = f2.creatNewFile();
        }catch(IOException e){
            FILE_LOG.warn("IOException: 文件创建失败");
        }
        ROOT_LOG.info("文件创建失败" + res);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40990836/article/details/78954823