【JavaEE初阶】文件操作和IO

目录

🌴认识文件

🚩树型结构组织和目录

🚩文件路径(Path)

[🚩 文件分类](#🚩 文件分类)

[🎍Java 中操作文件](#🎍Java 中操作文件)

[🚩 File 概述:](#🚩 File 概述:)

📌属性

📌构造方法

📌方法

🚩File使用实例代码演示

📌实例一

📌实例二

📌实例三

📌实例四

📌实例五


🌴认识文件

什么叫文件IO?

Input 输入,Output 输出

我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存(也就是平时保存在硬盘上的这些文件),这个独立的单位就被抽象成文件的概念,就类似办公桌上的一份份真实的文件一般。

那么上面的文件夹是否是文件?

  • 文件夹也是一种文件,称为"目录文件",也是保存在硬盘上的

🚩树型结构组织和目录

同时,随着文件越来越多,对文件的系统管理也被提上了日程,如何进行文件的组织呢,一种合乎自然的想法出现了,就是按照层级结构进行组织 ------ 也就是我们数据结构中学习过的树形结构。这样,一种专门用来存放管理信息的特殊文件诞生了,也就是我们平时所谓文件夹(folder)或者目录(directory)的概念。

🚩文件路径(Path)

由于文件非常多,目录也非常多,目录之间还能嵌套,需要在上述体系中,能够有一种方式标识某个具体的文件,通过这个机制就能具体定位到,找到某个文件。

路径:

从根节点出发,一层一层往下走,最终走到目标文件之后,中间这些目录集合在一起就够成了"路径"

例子:在D盘下呢有一个文件,这个文件怎么找到呢,先找到此电脑->D盘->ph,我们就可以通过d:/ph 就可以找到这个文件了(由于都是在此电脑路径下开始找的,所以此电脑就可以省略了)。

注意:

  • 目录与目录之间使用 / 或者 \ 分割,但是仅限于 Windows 上。

上述路径呢,是以盘符开头的路径,我们也称为"绝对路径"。

我们可以从任意结点出发,进行路径的描述,而这种描述方式就被称为相对路径(relative path),相对于当前所在位置为出发点的一条路径。从当前起点出发,我们把起点也称为"工作目录"。

比如:

🚩 文件分类

文件分类的方式有很多种,此处主要讨论一种和编写代码密切相关的。

文本文件 vs 二进制文件

文本数据: 二进制数据:

日常常见的:

🎍Java 中操作文件

针对文件系统进行操作:

Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。进一步通过 File 提供的方法就可以文件系统操作了。

🚩 File 概述:

我们先来看看 File 类中的常见属性、构造方法和方法

📌属性

📌构造方法

一般使用第二种,字符串类型的路径,使用绝对路径/相对路径 都是可以的

📌方法

🚩File使用实例代码演示

📌实例一

注意:有 File 对象,并不代表真实存在该文件

也就是说这里的 d:/ph/text.txt 可能根本不存在(当然此路径是存在的)

我们观察输出,发现后面三个差不多都一样,那是因为上述路径是绝对路径。

我们改为相对路径试试:

📌实例二

当前文件的判定

绝对路径:

ph是一个目录

相对路径:

📌实例三

普通文件的创建、删除

代码:创建

运行: 此时就创建出一个文件,IEAD左侧就可以看见了

代码:

直接删除:

运行: 此时文件已经被删除了

进程结束在删除:

输入前: 输入后:此时文档已经被删除了

📌实例四

创建目录

代码:创建一级目录

运行: 创建一级目录:

代码:创建多级目录

运行: 创建多级目录:

📌实例五

文件重命名

代码:

运行之后:

针对文件内容操作下篇在叙述!!!

相关推荐
9号达人2 小时前
为什么你应该在 MQ 里用多个消费者,而不是一个
java·后端·架构
焦糖玛奇朵婷2 小时前
健身房预约小程序开发、设计
java·大数据·服务器·前端·小程序
小新同学^O^2 小时前
简单学习 --> TCP协议
java·网络·tcp
月落归舟3 小时前
深入理解Java适配器模式,彻底搞懂设计思想
java·开发语言·适配器模式
Mr_pyx3 小时前
【LeetHOT100】二叉树的中序遍历——Java多解法详解
java·开发语言·深度优先
jay神3 小时前
基于SpringBoot的宠物生命周期信息管理系统
java·数据库·spring boot·后端·web开发·宠物·管理系统
万亿少女的梦1683 小时前
基于SpringBoot的在线考试管理系统设计与实现
java·spring boot·后端
一勺菠萝丶3 小时前
如何在 Linux 服务器上使用 Speedtest 官方 CLI 测试带宽(小白教程)
java·服务器·前端
范什么特西4 小时前
第一个Mybatis
java·开发语言·mybatis
下次再写4 小时前
【Redis实战】深入理解Redis缓存策略:从原理到Spring Boot实践
java·spring boot·redis·缓存穿透·缓存击穿·分布式缓存·缓存策略