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() {} ``` 在**进程退出**时 删除**真实**的抽象路径末文件

相关推荐
非凡ghost2 小时前
eDiary电子日记本(记录生活点滴)
windows·学习·生活·软件需求
小鸡脚来咯2 小时前
java泛型详解
java·开发语言
爱笑的眼睛112 小时前
JAX 函数变换:超越传统自动微分的编程范式革命
java·人工智能·python·ai
liuyouzhang2 小时前
备忘-国密解密算法
java·开发语言
暗然而日章2 小时前
C++基础:Stanford CS106L学习笔记 15 RAII&智能指针&构建C++工程
c++·笔记·学习
TL滕2 小时前
从0开始学算法——第二十一天(高级链表操作)
笔记·学习·算法
学编程就要猛2 小时前
算法:1.移动零
java·算法
黑客思维者2 小时前
机器学习014:监督学习【分类算法】(逻辑回归)-- 一个“是与非”的智慧分类器
人工智能·学习·机器学习·分类·回归·逻辑回归·监督学习
开开心心_Every2 小时前
优化C盘存储:自定义软件文档保存路径工具
java·网络·数据库·typescript·word·asp.net·excel