深入了解File类,勘破文件操作 | 带你学《Java语言高级特性》之四十七

上一篇:Flie类-踏入文件的领域 | 带你学《Java语言高级特性》之四十六
了解了File类提供的几个基本功能后,我们还需要注意一些问题,比如文件路径分隔符、JVM文件处理流程、创建时路径注意事项等,本节将一一介绍。

【本节目标】
通过阅读本节内容,你将了解到不同的操作系统中的路径的编写方式、注意到文件操作过程中文件名应当尽可能避免重复,掌握创建单级目录和多级目录的方法,保证上级路径的存在性。

File类操作深入

现在已经实现了文件的基础操作,但是对于这个操作里面也是存在有一些问题的,下面针对于之前的代码进行优化处理。

1、在实际的软件项目开发和运行过程之中,往往都会在Windows系统中进行项目的开发,而在项目部署的时候基于Linux或者Unix系统来进行项目发布以保证生产环节的安全性。

在不同的操作系统之中会存在有不同的路径分隔符:

Windows标准分隔符为“”;Linux分隔符为“/”;
所以在最初的开发时就必须考虑不同系统环境下的分隔符问题,所以为了解决此问题,File类提供有一个常量:public static final String separator;随着系统的适应性的不断加强,对于当前的路径操作,也可以比较随意的使用了。

范例:正常的路径编写

public class JavaAPIDemo {
    public static void main(String[] args) throws Exception{
        File file = new File("d:"+File.separator+"mldn.txt");
        if(file.exists()) {
             file.delete();    //删除文件
        }else {    //文件不存在
             System.out.println(file.createNewFile()) ;   //创建新的文件
        }
    }
}

但是随着系统的适应性的不断加强,对于当前的路径操作,也可以随意使用了。

File file = new File(“d:/mldn.txt”);

2、在使用File类进行文件处理的时候需要注意的是:程序→JVM→操作系统函数→文件处理。所以在进行同一文件反复删除或创建的时候有可能会出现延迟的问题,所以这时最好的方案是别重名;
3、在进行文件创建的时候有个重要前提:文件的父路径必须首先存在。

  • 如何获取父路径:public File getParentFile();
  • 创建目录:public boolean mkdir(),创建单级目录;
  • 创建目录:public boolean mkdirs(),创建多级目录;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception{
        File file = new File("d:"+File.separator+"hello"+File.separator+"demo"+File.separator"+"message"+File.separator"+mldn.txt");
        if(file.getParentFile().exists()) {    //父路径不存在
             file.getParentFile.mkdirs() ;   //创建父路径
        }
        if(file.exists()) {
             file.delete();    //删除文件
        }else {    //文件不存在
             System.out.println(file.createNewFile()) ;   //创建新的文件
        }
    }
}

这种判断并且建立父目录的操作在很多情况下可能只需要一次,但是如果将这个判断一直都停留在代码里面,那么就会造成时间复杂度的提升,所以这个时候要想提升性能,请先保证目录已经创建。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:借助File类了解文件的内在美 | 带你学《Java语言高级特性》之四十八
更多Java面向对象编程文章查看此处

上一篇:(一二九)类中使用new


下一篇:GitLab 揭露严重漏洞,提供补丁