深入了解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面向对象编程文章查看此处

相关文章
|
2月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
1天前
|
存储 监控 算法
探秘局域网桌面监控:深入剖析 Java 语言核心算法
在数字化办公时代,局域网桌面监控如同企业的“智慧鹰眼”,确保工作效率与数据安全。本文以Java为载体,揭示哈希表在监控中的关键应用。通过高效的数据结构和算法,哈希表能快速索引设备连接信息,大幅提升监控的时效性和响应速度。代码示例展示了如何用Java实现设备网络连接监控,结合未来技术如AI、大数据,展望更智能的监控体系,助力企业在数字化浪潮中稳健前行。
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
165 57
|
17天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
68 8
|
2月前
|
Java Android开发
Eclipse 创建 Java 类
Eclipse 创建 Java 类
31 0
|
存储 Java 编译器
Java语言------图书馆管理系统(入门简略版)
Java语言------图书馆管理系统(入门简略版)
135 0
Java语言------图书馆管理系统(入门简略版)
|
小程序 安全 前端开发
【Java编程进阶】Java语言基础入门篇
整个Java全栈编程知识体系十分庞大,包括JavaSE知识,Web前端,Web后端,数据库相关的知识等,初学者应该系统踏实的学习,一步一个脚印。Java语言是一种完全面向对象的跨平台语言。有很多突出的优点,例如简单易学,面向对象,分布式,安全可靠,解释型语言,跨平台运行,可移植高性能多线程,可实现网络编程等。
192 0
【Java编程进阶】Java语言基础入门篇
|
Java
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
Java学习路线-53:EL(表达式语言)入门及 EL 函数库
126 0
|
JavaScript 前端开发 Java
java语言入门总结
java语言入门总结
90 0