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

简介: 了解了File类提供的几个基本功能后,我们还需要注意一些问题,比如文件路径分隔符、JVM文件处理流程、创建时路径注意事项等,本节将一一介绍。

上一篇: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面向对象编程文章查看此处

相关文章
|
1月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
29天前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
45 8
|
29天前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
64 1
|
1月前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
54 4
|
1月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
1月前
|
Java Android开发
Eclipse 创建 Java 类
Eclipse 创建 Java 类
26 0
|
4月前
|
Java 开发者
奇迹时刻!探索 Java 多线程的奇幻之旅:Thread 类和 Runnable 接口的惊人对决
【8月更文挑战第13天】Java的多线程特性能显著提升程序性能与响应性。本文通过示例代码详细解析了两种核心实现方式:Thread类与Runnable接口。Thread类适用于简单场景,直接定义线程行为;Runnable接口则更适合复杂的项目结构,尤其在需要继承其他类时,能保持代码的清晰与模块化。理解两者差异有助于开发者在实际应用中做出合理选择,构建高效稳定的多线程程序。
63 7
|
2月前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
27 3
|
2月前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
38 2
|
2月前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
45 1