此处谈到的文件,本身有多重含义
狭义的文件,特质硬盘上的文件(以及保存文件的目录)
广义的文件,计算机上的很多硬件设备,软件资源,在操作系统中,都会被视为“文件”
硬盘和内存的对比
空间 | 速度 | 成本 | 数据 | ||
---|---|---|---|---|---|
硬盘 | 大 | 慢 | 低 | 持久储存 | |
内存 | 小 | 快 | 高 | 断电后丢失 |
为什么硬盘的速度慢?
这和它硬件的物理结构直接相关
当下硬盘主要分两类:
机械硬盘在进行顺序读写时,效率是相对比较高的,因为磁头不用动,盘片高速旋转就好了 但是在随机读写(指哪打哪)的时候,效率就比较低。因为会涉及到磁头移动,就需要克服惯性去做功
在服务器领域,机械硬盘仍然是一个主流的应用场景
机械应盘自己不要拆开!一旦拆开,就报废了。机械硬盘的拆解和维修必须在专门的无尘环境下进行 否则上面落灰尘之后,之后磁盘运行,高速旋转的盘片和移动的磁头将与灰尘碰撞,产生一个很大的冲量,从而将磁头破坏
如果你要买固态硬盘,一方面要关注存储容量,也要关注读写速度
对于硬盘来说,尤其是机械硬盘,擅长顺序读写,不擅长随机读写。虽然在固态硬盘上有所改善,但整体来说,固态硬盘的随机读写能力,仍然是非常逊色于内存的
在一个电脑上,有很多文件,都是需要考操作系统,进行组织管理的 操作系统专门有一个模块,“文件系统”
文件系统上的目录结构,是一个“树形结构”,不是二叉树,是“N叉树”
基于上述的结构,我们就可以找到某个文件在电脑上的具体位置 路径中,就约定使用分隔符,分割目录和目录:
\
(反斜杠)/
(斜杠)
绝大部分系统,都是使用斜杠 \
作为目录的分隔符,只有 Windows
两种斜杠都能用路径,也可以认为是文件的一种身份标识,通过标识,区分出唯一的一个文件
表示路径的两种风格
D:\My Computer\02 Stricky\02 Code\03 IDEA\Gitee\java_code
)D:\My Computer\02 Stricky\02 Code\03 IDEA\Gitee\java_code
目录下,要在此目录下找到 240811-Thread
文件,就只需要输入 .\240811-Thread
作为程序员,常用的路径形式都是相对路径。因为绝对路径只适合自己的机器,一旦把你的代码换到比尔呢的机器上,如果代码依赖绝对路径,就可能你自己的电脑上能跑,别人的电脑上跑不起来(这里的绝对路径只在你自己电脑上存在,别人的机器上不存在)
一个程序能正常运行,不仅仅取决于代码,也取决于代码的运行环境。(操作系统版本,第三方库,配置文件,其他目录文件,硬件设备…)
文本文件(.txt
/.c
/.java
)
二进制文件(.docx
/.exe
/.dll
/.mp3
/.mp4
/.class
)
[!quote] 字符编码方式(字符集) 中文 UTF8/GBK,字符编码都是很大的“表格”
一个简单粗暴的方式,判断是什么文件:
针对文本文件来说,其实 Java 已经进行了很多的内置处理。虽然文本文件底层仍然是二进制存储,Jav 啊把文本文件取出来的时候,自动查询码表,把二进制内容一个个转换成字符。而二进制文件则没有上述的转换过程