<文件操作及常用的API>

文章目录

    • 专栏导读
    • 🚀简单认识一下文件
    • 🚀树形结构和目录
    • 🚀文件路径-相对路径、绝对路径
    • 🚀文件类型
    • 🚀Java中文件的操作
    • 🚀File 类的常用方法

专栏导读

🚀多线程章节
💐数据结构剖析
🌷JavaSE语法

🚀简单认识一下文件

我们所谓的“文件”,是一个广义的概念,在操作系统里,会把很多的硬件设备和软件资源都抽象成“文件”,进行统一的管理;而大部分情况下,谈到文件都是指硬盘上的文件,文件就相当于是对“硬盘”的一种抽象,在平时所说的操作硬盘其实也就是操作文件,通过对文件的读写从而实现对硬盘的操作;

这里简单提几点:内存 VS 硬盘

1.内存读取速度块,硬盘慢

2.内存空间小,硬盘空间大

3.内存贵,硬盘便宜

4.内存中的数据,断电就丢失,硬盘中的数据断电后还在可以长期保存

🚀树形结构和目录

在计算机中,针对于多个文件都是使用文件夹进行管理,而“文件夹”这个名字只是民间的一种叫法,而文件夹在计算机中被称为**“目录**”; 随着计算机的发展,而在计算机上存储的数据也变的越来越多,所需要的文件也越来越多,所以,就衍生出了一重组织这些文件的方式——按照层级结构进行组织,这就类似于数据结构中的树形结构,在一个根目录下(根节点)面,又有许多的子目录(子节点),在子目录中又有许多的各种格式的文件(根节点);

在这里插入图片描述

🚀文件路径-相对路径、绝对路径

在众多目录中,如果想要找到某一个文件,就非常的费力气,但是呢,这难不倒我们的科学家,科学家们就利用树形的层次结构,通过“\”来区分每一层的目录,从而确定文件的具体位置:

C: \ Program Files (x86) \ Windows Media Player

这样用来确定文件位置的一串字符串就称为“文件的路径”

文件路径又分为:绝对路径和相对路径

绝对路径:是以 D:\ 盘 或者 C:\ 盘 这种盘符开头的路径

相对路径:指定一个目录作为基准目录,从基准目录出发,进行路径的描述称为相对路径,而相对路径通常是以 . 或者 … 开头的,两个点表示从基准目录的上一层目录开始寻找,一个点表示当前目录开始寻找,一个点也 可以省略;

在这里插入图片描述

🚀文件类型

从编程的角度看,文件类型主要分为:文本文件、二进制文件两大类;

  • 文本文件:文件中保存的数据都是字符串,保存的内容都是合法的字符

  • 二进制文件:文件中保存的数据都是二进制数据;

    什么是“合法的字符”

    在计算机中,存储的数据其实都是二进制数据,但是,数据通过字符集进行编码的,就可以翻译成合法的字符,例如,如果一个文件是utf8编码的,此时文件中的每个数据都是合法的utf8编码的字符,那么就可以认为这个文件是文本文件,如果存在一些不是utf8合法字符的情况,那么就是二进制,比较简单的验证方法就是,将一个文件放到记事本中,如果是正常的文本字符,那就是文本文件,如果是乱码情况,就是二进制文件

区分是二进制还是文本文件是非常重要的,因为利用编程针对文本文件和二进制文件的编写方式是不同的,下面就来介绍一下针对于文本文件的编写方式

🚀Java中文件的操作

Java针对文件的操作,主要分为针对文件系统的操作针对文件内容的操作 两类,本篇文章主要讲解文件系统的操作:

1.文件系统的操作

例如,创建文件,删除文件,文件重命名,判断文件是否存在……

在Java中,使用了一个File类来操作文件

一个File对象,就表示硬盘上的一个文件,在构造对象时,就需要把这个文件路径作为参数传过去;

下面看一下File的三个构造方法:

构造方法说明
File(File parent, String child)根据父目录+孩子文件路径,创建一个新的File对象
File(String pathname)根据文件路径创建一个新的File对象,路径可以是绝对路径或者相对路径
File(String parent, String child)根据父目录+孩子文件路径,创建一个新的File对象,父目录使用路径表示

以上的构造方法,最常用的就是第二个,直接指定一个路径实现File对象的创建

🚀File 类的常用方法

**示例一:**关于路径的操作

返回值类型方法说明
StringgetParent()返回 File 对象的父目录文件路径
StringgetName()返回 File 对象的纯文件名称
StringgetPath()返回 File 对象的文件路径
StringgetAbsolutePath()返回 File 对象的绝对路径

代码演示:

    public static void main(String[] args) {File file = new File("d:/新建文件夹/text.txt");//注意:如果指定的路径是一个文件,则必须将文件后缀写上System.out.println(file.getParent());//获取file对象的父目录System.out.println(file.getName());//获取file对象的纯文件名称System.out.println(file.getPath());//返回file对象的文件路径System.out.println(file.getAbsoluteFile());//返回file对象的绝对路径}

在这里插入图片描述

**示例二:**文件的判断、创建

返回值方法说明
booleanexists()判断 File 对象锁描述的文件/目录是否真实存在
booleanisDirectory()判断 File 对象代表的文件是否是一个目录
booleanisFile()判断 File 对象代表的文件是否是普通文件
booleancreateNewFile()根据 File 对象,自动创建一个空文件,成功创建后返回true
    public static void main(String[] args) throws IOException {File file = new File("d:/新建文件夹/text.txt");//注意:如果指定的路径是一个文件,则必须将文件后缀写上System.out.println(file.exists());System.out.println(file.isDirectory());System.out.println(file.isFile());//在进行上述判断时,该目录中并没有text.txt文件System.out.println(file.createNewFile());//文件被创建}

在这里插入图片描述

**示例三:**文件的删除

返回类型方法说明
booleandelete()根据 File 对象,删除该文件,成功删除后返回true
voiddeleteOnExit()根据 File 对象,标注文件将被删除,删除操作会在JVM运行结束时才进行
    public static void main(String[] args) throws IOException {File file = new File("d:/新建文件夹/text.txt");System.out.println(file.delete());file.deleteOnExit();}

**示例四:**创建目录

返回类型方法说明
booleanmkdir()创建 File 对象代表的目录
booleanmkdirs()创建 File 对象代表的目录,如果有必要,会创建中间目录

(1)mkdir

在 D盘 中有新建文件夹、目录1、目录2三个目录,在这三个目录的基础上要创建目录3,那么根据这个路径创建一个file对象后,调用mkdir()方法就可以创建目录了

    public static void main(String[] args) throws IOException {File file = new File("d:/新建文件夹/目录1/目录2/目录3");System.out.println(file.mkdir());}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

现在更改路径,把中间的目录1、目录2给删除,然后指定路径时,仍然使用上述路径惊醒创建,再调用mkdir()创建目录,就会出现错误;

    public static void main(String[] args) throws IOException {File file = new File("d:/新建文件夹/目录1/目录2/目录3");System.out.println(file.mkdir());}

在这里插入图片描述

因为使用mkdirs() 创建目录时,在创建 File对象时,所指定的路径中,处了待创建的目录,其他目录必须是已经存在了的,所以,这对于这种情况就可以使用下面这个方法;

(2) mkdirs

    public static void main(String[] args) throws IOException {File file = new File("d:/新建文件夹/目录1目录2/目录3");System.out.println(file.mkdirs());}

在这里插入图片描述

**示例五:**获取目录下的所有文件

返回类型方法说明
String[]list()返回 File 对象代表的目录下所有的文件名
File[]listFiles()返回 File 对象代表的目录下所有的文件,以File对象表示
    public static void main(String[] args) throws IOException {File file = new File("d:/新建文件夹");String[] files1 = file.list();File[] files2 = file.listFiles();System.out.println(Arrays.toString(files1));System.out.println(Arrays.toString(files2));}

在这里插入图片描述

**示例六:**文件重命名

返回类型方法说明
booleanrenameTo(File dest)重命名文件
    public static void main(String[] args) throws IOException {File file = new File("d:/新建文件夹/111.txt");//保证源文件必须存在File dest = new File("d:/新建文件夹/222.txt");System.out.println(file.renameTo(dest));}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/177015.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB入门级别教程全(Windows版,保姆级教程)

下载mongodb 进入官网: Download MongoDB Community Server | MongoDB 选择msi,Windows版本 下载完后直接双击: 选择complete 这里建议改地方: 我这里直接改成d盘:work目录下面: 点击next: 因…

Vatee万腾智能创新探索:Vatee科技引领创新发展

在Vatee万腾的智能创新探索中,我们见证了一场科技领域的革命。Vatee万腾通过其独到的智能时代愿景,正引领着科技创新发展的浪潮,塑造着未来的数字化格局。 Vatee万腾以其卓越的科技引领力,将智能创新推向新的高度。通过整合先进的…

《算法通关村——位运算常用技巧》

《算法通关村——位运算常用技巧》 位运算的性质有很多,此处列举一些常见性质,假设以下出现的变量都是有符号整数。 ●幂等律:a &aa,a ∣ aa(注意异或不满足幂等律); ●交换律&#xff1…

【Beyond Compare】大小写对比的设置

1.点击会话设置 2.把大小写打勾 3.对比效果

程序员的护城河:技术深度与软实力的并重

程序员的护城河:技术深度与软实力的并重 作为一名资深的IT行业从业者,我一直在思考一个问题:在我们这个以数据驱动和技术创新为核心的时代,程序员的价值究竟体现在哪里?毫无疑问,程序员在维护系统安全、数…

使用 Cloudflare Worker 免费搭建网址导航网站

开源项目 GitHub:https://github.com/sleepwood/CF-Worker-Dir/ CloudFlare Worker:https://workers.cloudflare.com/ 搭建教程 首先,进入cloud flare - Worker 截图20200224180010.png 在 Cloudflare Worker 管理页面创建一个新的 Work…

三菱PLC小项目系列—传送带多地控制

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 化工厂中有传送带进行原料传送加工,当按下启动按钮SB1或者SB2,电机M1接通控制传送带运转,直至按下停止按钮SB3,电机停止并使传送带停止运行。 二、IO口分…

Linux技能篇-软链接和硬链接

文章目录 前言一、硬链接是什么?二、软链接是什么?三、硬链接和软链接的区别和共性1.区别2.共同点 总结 前言 在Linux系统中,有两个容易混淆的概念,就是软链接(Soft Link)和硬链接(Hard Link&a…

连小白都在用的电子期刊制作网站

你是不是也想制作一份精美的电子期刊,却苦于没有专业的技能和工具?现在,有一款制作电子期刊的网站,连小白都能轻松制作电子期刊!它就是今天要介绍的——【FLBOOK在线制作电子杂志平台】! 【FLBOOK在线制作电…

国际阿里云:无法访问ECS实例中的服务的排查方法!!!

操作场景 无法访问ECS实例中的服务可能有以下原因: 可能原因 排查方案 ECS实例的安全组未开放相应端口 检查ECS实例安全组规则 ECS实例中,该服务未启动/开启或服务对应端口未被监听 检查服务状态及端口监听状态 ECS实例内防火墙设置错误 检查ECS…

Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用

1.课程目标及知识点的应用场景 Git分支和标签的命名规范 分支 dev/test/pre/pro(即master) dev:开发环境--windows (自己的电脑) test:测试环境--windows/linux (公司专门的测试电脑 pre:灰度环境(非常大的公司非常重要的项目) pro:正式环境 灰度环境与正式环境的服务器配置…

实用篇-ES-RestClient操作文档

一、RestClient案例准备 对es概念不熟悉的话,先去看上面的 实用篇-ES-索引库和文档,不建议基础不牢就直接往下学 ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求来发送给ES。 官…