Java文件操作系列(一):从基础概念到File类核心方法

🔥Brookty: 个人主页

📚系列专栏:《JavaEE》、《文件IO》

💪学习阶段:JavaEE全栈文件IO

🎬博主简介☟ ​

​

​

文章目录

一、资源

1.硬件资源

1.1存储

1.1.1cpu寄存器

1.1.2内存

1.1.3外存

1.2CPU、显卡、外设

2.软件资源

2.1程序

2.2数据

2.2.1文件

2.2.1.1狭义文件

2.2.1.2广义文件

3.硬软关系

3.1硬件对软件

3.2软件对硬件

二、文件基础

1.组织

1.1目录文件

1.2普通文件

2.路径

2.1绝对路径

2.2相对路径

2.2.1基准路径

3.存储

3.1二进制文件

3.2文本文件

4.打开

4.1打开文件

4.2打开父目录

三、文件操作(一):文件系统操作

File类

1.构造

1.1绝对/相对路径

1.2父目录路径+子文件名

1.3父目录+子文件名

2.创建

2.1普通文件

2.2目录文件

2.2.1一个目录

2.2.2多级目录

3.获取

3.1路径

3.1.1抽象路径

3.1.2父路径

3.2文件名

3.3存储

3.3.1文件名

3.3.2文件对象

4.判断

4.1真实性

4.1.1存在

4.1.2普通文件

4.1.3目录文件

4.2权限

4.2.1读

4.2.2写

5.移动(重命名)

6.删除

6.1立即删除

6.2退出删除


一、资源

计算机可使用的 物理类硬件资源 与 逻辑类软件资源

1.硬件资源

存储、CPU、显卡、外设(如打印机)

1.1存储

1.1.1cpu寄存器

高速小量 临时 存 正在处理 的 指令****和数据


1.1.2内存

中速中量 临时 存 运行时加载 的 逻辑类软件


1.1.3外存

低速大量 持久 存 没运行加载 的 逻辑类软件


1.2CPU、显卡、外设


2.软件资源

程序、数据

2.1程序

系统软件(如Windows操作系统,文件管理系统)、应用软件(如World,浏览器)


2.2数据

文件、配置、数据库

2.2.1文件

文件含属数据

|----|-------|
| 含属 | 包含并属于 |
[注释]

2.2.1.1狭义文件

存于****外部存储里的 数据的含属载体,涵盖存储的数据 (++长期文件++,如文件、视频、程序安装包)


2.2.1.2广义文件

操作系统****管理对象化成数据的 含属载体,涵盖存储和处理的数据 (++长期文件++ ,如外存的狭义文件;++临时文件++,如cpu寄存器的指令片段、内存中的数据块、外部设备的节点文件)


3.硬软关系

3.1硬件对软件

执行的硬件 使用软件的****数据:

物理类硬件 存储写执行读****逻辑类软件


3.2软件对硬件

运行的软件 操控 硬件****的执行:

  1. 操作系统 转化 管理对象 为文件
  2. 操作系统 映射 物理类硬件内寻逻辑类软件 的 地址
  3. 操作系统 加载 外存数据 到内存

二、文件基础

1.组织

文件 以N叉树 结构 组织位置

1.1目录文件

非叶子节点 的++目录++ 文件 存储文件


1.2普通文件

叶子节点 的++普通++ 文件 存储数据


2.路径

进入文件 里面存储下一层的内容,朝下选进的文件 构成路径

2.1绝对路径

绝对路径 从此电脑根节点 朝下选进盘符文件 开始


2.2相对路径

相对路径 重进基准路径的已进文件 后再继续:

./ 重进 基准路径的当前末处的 已进文件

../ 重进 基准路径的往回一个的 已进文件

2.2.1基准路径

案例:

  1. idea中运行程序 的基准路径是 项目目录 的绝对路径
  2. 运行jar包 的基准路径是 执行运行命令所在目录 的绝对路径

3.存储

3.1二进制文件

文件都是 以二进制形式存储 的 二进制文件(如图片、音频、视频、富文本.world/docx)


3.2文本文件

文本文件存储的二进制数据 都能数字大小映射在码表 上 且翻译的字符组合有意义(如纯文本.txt、源文件.java/c)


4.打开

4.1打开文件

打开文件 查看文件的存储数据


4.2打开父目录

打开文件的父目录 查看父目录的存储数据 、里面有此文件的组织结构


三、文件操作(一):文件系统操作

知识连接:文件操作(二):文件内容操作

File类

文件对象进入抽象路径末文件 管理

1.构造

传参初始化 抽象路径 进行构造:

1.1绝对/相对路径
java 复制代码
public File(String pathname) {}

1.2父目录路径+子文件名
java 复制代码
public File(String parent, String child) {}

1.3父目录+子文件名
java 复制代码
public File(File parent, String child) {}

2.创建

2.1普通文件
java 复制代码
public boolean createNewFile() throws IOException {}

创建 抽象路径末文件 为普通文件


2.2目录文件
2.2.1一个目录
java 复制代码
public boolean mkdir() {}

创建 抽象路径末文件 为目录文件


2.2.2多级目录
java 复制代码
public boolean mkdirs() {}

沿抽象路径补 创建 多级目录


3.获取

3.1路径
3.1.1抽象路径

1构造格式

java 复制代码
public String getPath() {}

获取 构造格式的抽象路径

2完整绝对

java 复制代码
public String getAbsolutePath() {}

获取 包重进 完整绝对的抽象路径

3标准绝对

java 复制代码
public String getCanonicalPath() throws IOException {}

获取 去重进 标准绝对的抽象路径


3.1.2父路径
java 复制代码
public String getParent() {}

获取 抽象路径末文件的 父目录的路径


3.2文件名
java 复制代码
public String getName() {}

获取 抽象路径末文件的 文件名


3.3存储
3.3.1文件名
java 复制代码
public String[] list() {}

获取 抽象路径末真实目录文件 里面的存储文件名


3.3.2文件对象
java 复制代码
public File[] listFiles() {}

获取 抽象路径末真实目录文件 里面的存储文件对象


4.判断

4.1真实性
4.1.1存在
java 复制代码
public boolean exists() {}

判断 抽象路径末文件 是否 真实存在


4.1.2普通文件
java 复制代码
public boolean isFile() {}

判断 抽象路径末文件 是非 真实的普通文件


4.1.3目录文件
java 复制代码
public boolean isDirectory() {}

判断 抽象路径末文件 是非 真实的目录文件


4.2权限
4.2.1读
java 复制代码
public boolean canRead() {}

判断 用户 是否 有对文件读权限


4.2.2写
java 复制代码
public boolean canWrite() {}

判断 用户 是否 有对文件写权限


5.移动(重命名)

java 复制代码
public boolean renameTo(File dest) {}

移动 抽象路径末文件 成 指定文件对象的路径末文件


6.删除

6.1立即删除
java 复制代码
public boolean delete() {}

立即删除 真实的抽象路径末文件


6.2退出删除
java 复制代码
public void deleteOnExit() {}

在进程退出时 删除真实的抽象路径末文件

相关推荐
Rabitebla7 小时前
【Linux】进程控制(十二) 自定义 Shell(二):内建命令与进程工作目录管理
linux·c++·笔记·学习·bash
Gary移动存储固件8 小时前
eMMC5.1协议中文学习讲解(6.6.17~6.6.22.4.6)
学习·ufs·emmc·nand·存储固件
budingxiaomoli8 小时前
Spring统一功能处理
java·后端·spring
一个天蝎座 白勺 程序猿8 小时前
别让收藏夹替你学习:我搭AI知识体系的完整方法,脚本直接拿去用
人工智能·学习·ai·ai学习
楚山之石9 小时前
【Nat Biomed Eng】Connectome 2.0 超高梯度扫描仪:500 mT/m 与 600 T/m/s 把活体人脑微观结构分辨推进到亚微米级
图像处理·学习·数据分析·mri
Flynn Liang10 小时前
可观测性与成本治理:一次对话的 17 个观测点
java·langchain·可观测性·micrometer·langchain4j·token 成本·llm 监控
金銀銅鐵10 小时前
带您看懂字节码指令(三):同一行加法,为什么有四种指令
java·jvm
坤坤子吖12 小时前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
文丑颜不良啊14 小时前
LeetCode2821~2840题目解析
java·leetcode
apcipot_rain15 小时前
C++转Java日记(10)
java·开发语言