File类操作深入
- 在实际的软件项目开发和运行之中,往往都会在windows系统中进行项目的开发,而在项目部署的时候Linux或Unix系统进行项目的发布,以保证项目生产环节的安全性;
- 在不同的操作系统之中,会存在有不同的路径分隔符“\”,Linux分隔符“/”,所以在最初进行开发的时候就必须考虑不同系统环境下的分隔符问题,为了解决此问题,File类提供有一个常量:public static final String separator;
范例:正常的路径编写
File file = new File("F:"+File.separator+"Test"+File.separator+"test.txt"); //File.separator表示分隔符
但是随着系统的适应性不断加强,对于当前的路径操作也可以随意使用了(不区分/\)。
在使用File类进行文件处理的时候需要注意的是:程序->JVM->操作系统函数->磁盘文件处理,所以在进行同一个文件反复删除或者创建的时候有可能会出现延迟问题。
在进行文件创建的时候有一个重要的前提:文件的父路径必须首先存在。
获取父路径:public File getParentFile();
创建目录:public boolean mkdirs()或mkdir;(创建多级目录和单级目录)
public static void main(String[] args) throws IOException {
File file = new File("F:"+File.separator+"Test"+File.separator+"test.txt"); //File.separator表示分隔符
if(!file.getParentFile().exists()){ //判断父路径是否存在
file.getParentFile().mkdirs(); //创建父路径
}
if(file.exists()){ //文件存在
file.delete(); //删除文件
}else{ //文件不存在
System.out.println(file.createNewFile()); //创建文件
}
}
这种判断父目录的操作在很多情况下可能只需要一次,但是如果将这个判断一直都停留在代码中会造成时间复杂度的提升,所以这时要想提升心性能要先保证目录已经创建。