|
文件
1. 认识文件
狭义的文件
存储在硬盘上的数据, 以 "文件"
为单位, 进行组织. 例如: 我们打开 C 盘, 如图这些都是文件 (文本文件, 图片, office 系列, 视频, 音频, 可执行程序…)
硬盘的特点:
- 硬盘存储空间大, 内存存储空间小
- 硬盘访问速度慢, 内存访问速度快
- 硬盘的成本比较低, 内存成本比较高
- 硬盘上的数据断电不会丢失, 内存数据断电会丢失 (持久化存储)
广义的文件
操作系统, 是要负责管理软硬件资源. 操作系统 (Linux
) 往往会把这些资源统一的抽象成 “文件” 来进行管理.
2. 树形结构组织和目录
同时,随着文件越来越多,对文件的系统管理也被提上了日程,如何进行文件的组织呢,就是按照层级结构进行组织 —— 也就是我们数据结构中学习过的树形结构。这样,一种专门用来存放管理信息的特殊文件诞生了,也就是我们平时所谓文件夹(folder)或者目录(directory)的概念。
3. 文件路径
通过 "路径"
概念, 来描述一个文件, 在你的电脑上的具体位置. 路径又分为两种:
比如:我们在我们的电脑上找到 “WeChat.exe
” 这个文件, 此时我们想描述他此时所在的位置.
绝对路径: C:\Program Files (x86)\Tencent\WeChat\WeChat.exe
C:
盘符\Program Files (x86)\Tencent\WeChat
每个 \ 分割的部分都是目录WeChat.exe
文件名- 目录之间的分隔符, 可以使用
\
(反斜杠) , 也可以使用/
(斜杠)
相对路径: 首先需要有一个 “基准路径” (工作路径), 相对路径就是以基准路径为起点, 继续往下走, 才能到达目标的路径表示方式
#
如果基准路径是 C: 此时的相对路径应该如何描述 ?
./Program Files (x86)/Tencent/WeChat/WeChat.exe
./
在相对路径中, 使用 . 表示 " 当前目录"
#
如果基准路径是 C:/Program Files (x86) 呢 ?
./Tencent/WeChat/WeChat.exe
#
如果基准路径是 C:/Program Files (x86)/Tencent/QQ 呢 ?
. ./WeChat/WeChat.exe
../
相对路径中, 使用 … 返回到上级目录
如何理解工作目录
- 如果是通过命令行来执行程序, 此时当前命令所在的目录就是工作目录
- 如果在使用 idea 来执行 Java 程序, 这时的工作目录是 idea 打开的项目的目录
- 如果在使用的是 Tomcat 来运行一个 war 包, 工作目录就是 Tomcat 的 bin 目录
- …
4. 其他知识
#
文件, 根据其保存数据的不同, 我们一般将其简单的划分为文本文件 和 二进制文件, 分别指代保存被字符集编码的文本和按照标准格式保存的非被字符集编码过的文件。
#
Windows 操作系统上,会按照文件名中的后缀来确定文件类型以及该类型文件的默认打开程序。但这个习俗并不是通用的,在 OSX
、Unix
、Linux
等操作系统上,就没有这样的习惯,一般不对文件类型做如此精确地分类。
类似dll, ini, txt, dat 这种, 一般被称为文件拓展名 (extension
) 或者后缀 (suffix
), 不同的后缀往往代表不同的文件格式定义, 起到不同的作用.
例如:
- exe 在 Windows 中一般作为可执行程序来理解
- dll 在 Windows 中一般作为动态库来理解
#
文件由于被操作系统进行了管理,所以根据不同的用户,会赋予用户不同的对待该文件的权限,一般地可以认为有可读、可写、可执行权限。
#
Windows 操作系统上,还有一类文件比较特殊,就是平时我们看到的快捷方式(shortcut
),这种文件只是对真实文件的一种引用而已。其他操作系统上也有类似的概念,例如,软链接(soft link
)等。
#
最后,很多操作系统为了实现接口的统一性,将所有的 I/O
设备都抽象成了文件的概念,使用这一理念最为知名的就是 Unix、Linux 操作系统 —— 万物皆文件.
|
以上就是今天要讲的内容了,希望对大家有所帮助,如果有问题欢迎评论指出,会积极改正!!