【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左侧就可以看见了

代码:

直接删除:

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

进程结束在删除:

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

📌实例四

创建目录

代码:创建一级目录

运行: 创建一级目录:

代码:创建多级目录

运行: 创建多级目录:

📌实例五

文件重命名

代码:

运行之后:

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

相关推荐
李游Leo13 分钟前
Redis 持久化与高可用实践(RDB / AOF / Sentinel / Cluster 全解析)
java·spring·bootstrap
mask哥33 分钟前
详解mcp以及agen架构设计与实现
java·微服务·flink·大模型·ai agent·springai·mcp
Propeller1 小时前
【Android】View 交互的事件处理机制
android·java
杨杨杨大侠1 小时前
Atlas Mapper 教程系列 (5/10):集合映射与嵌套对象处理
java·开源·github
ERP老兵_冷溪虎山1 小时前
Python/JS/Go/Java同步学习(第十三篇)四语言“字符串转码解码“对照表: 财务“小南“纸式转码术处理凭证乱码崩溃(附源码/截图/参数表/避坑指南)
java·后端·python
是2的10次方啊1 小时前
如何设计10万QPS秒杀系统?缓存+消息队列+分布式锁架构实战
java
心灵宝贝1 小时前
Tomcat Connectors 1.2.37 源码编译安装教程(mod_jk 详细步骤)
java·tomcat
杨杨杨大侠1 小时前
Atlas Mapper 教程系列 (6/10):Spring Boot 集成与自动配置
java·开源·github
傻傻虎虎1 小时前
【Docker】容器端口暴露+镜像生成实战
java·docker·容器
练习时长一年1 小时前
搭建langchain4j+SpringBoot的Ai项目
java·spring boot·后端