本文旨在 初识 文件
1.文件的基本概念
- 狭义的文件——保存在硬盘上的文件
- 广义的文件——操作系统进行资源管理的一种机制,很多软件/硬件资源,抽象成“文件” 来表示
我们认为 文件夹也是 文件(通俗说法)
文件夹=>目录(专业术语)

文件存储:
| 存储空间 | 访问速度 | 成本 | 持久化 | |
| 硬盘 | 很大 TB级别 | 很慢 | 便宜 | 能够持久化 断电后数据还在 |
| 内存 | 一般 16 -32GB | 快 | 鬼 | 不能持久化 |
| CPU寄存器 | 极小 不到1KB | 非常快 |
和cpu一起算 非常贵 | 不能持久化 |
2.路径
一台计算机中,不允许直接访问硬盘,是通过文件的形式间接操作
——使用路径 是区别/识别唯一文件的方法
计算机中,目录套目录,形成了树形结构 N叉树
从根目录开始,到最终文件,中间需要经过哪些目录,把这些目录记录下来,就形成 路径
一般使用 斜杠 / 来分割 路径中的多级目录
(主流操作系统都是使用 斜杠/ 分割 但是Windows 斜杠/ 反斜杠\ 都支持
2.1绝对路径 与 相对路径
F:/Code/JAVA/demo1.java 从盘符(根节点)开始,逐级表示出来——绝对路径
. /demo1.java
.. /demo1.java 相对路径——需要明确一个“基准路径”
. 表示当前所在目录位置
1.假设基准路径是 F:/Code/JAVA 则—— ./demo1.java
2.假设基准路径是 F:/Code 则—— ./JAVA/demo1.java
3.假设基准路径是 F: 则—— ./Code/JAVA/demo1.java
.. 表示当前路径的上一层
1.假设基准路径是 F:/Code/Python 则—— ../JAVA/demo1.java
2.假设基准路径是 F:/Code/Python/test.py 则—— ../.. /JAVA/demo1.java
如果在代码中 写一个相对路径,那与之对应的基准路径是谁呢?

工作路径是谁? 不确定!!——取决于程序运行的方式
1.在IDEA中直接运行 基准路径就是项目的目录
F:\Code\JAVA\java-learning-journey\Java_EE\chujie\demo1
2.打一个 jar包,单独运行jar包
当前在哪个目录下执行运行命令 (java -jar jar包名)
基准目录就是哪个目录
3.文件的种类
- 文本文件
- 二进制文件
大前提,所有的文件 都是二进制的——冯诺依曼祖师爷规定的
有一些文件是特殊的,二进制数据刚好能构成字符(不仅仅是ascii)
二进制数据可以通过码表查到 翻译过来的字符可以构成有意义的信息
暴力区别方法——直接使用记事本打开该文件
- 不是乱码,能看懂——文本文件
- 乱码,看不懂——二进制文件
图片,音频,视频,可执行程序,都是典型的二进制文件
txt纯文本, .java .C都是典型的文本文件
4.以上小结
文件存储在硬盘上的
目录也是文件,操作系统通过树形结构组织目录和文件的
通过路径识别定位到具体的文件(绝对路径 相对路径)
文件分为二进制文件 / 文本文件
1465






