【文件IO】学习文件IO,让你从操作系统内核的角度去理解输入和输出(理论篇)
1. 文件IO的初识2. 文件的存储与读写规则3. 文件系统知识
本篇会加入个人的所谓鱼式疯言
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!
引言
在数字化时代,数据的存储、访问与处理已成为推动科技进步与社会发展的核心动力。
想象一下,从个人电脑的文档管理到企业级的数据中心,从智能手机上的照片备份到云端服务的海量数据存储,无一不依赖于一个关键而基础的技术—— 文件输入输出(File IO) 。
文件IO,作为连接数据世界与现实世界的桥梁,其重要性不言而喻。它不仅关乎数据的安全与效率,更是各类应用程序、操作系统乃至整个信息技术架构的基石。
让我们一同踏入这场探索之旅,揭开文件IO技术的神秘面纱,共同见证数据如何在指尖流转,成为推动世界前行的强大力量。
本篇文章中我们讲学习到以下内容
目录
-
文件IO的初识
-
文件的存储与读写规则
-
文件系统知识
一. 文件IO的初识
什么是文件,什么又是IO呢? 那么他们两者又有什么关系呢?
1. 文件的概念
在谈及文件之前,小编带着小伙伴们先回顾下硬盘和内存的关系吧。
硬盘 存储空间大,内存
小
。
硬盘 成本低 ,内存
高
。
硬盘 读写速度慢 , 内存
快
。
硬盘 存储数据持久化 ,内存
掉电后数据丢失
。
而今天我们谈及的 文件 就是和硬盘相关的一类。
并且文件的概念分为两种
其一: 广义上的文件: 硬件设备,软件资源 都可以称之为
“文件”
。
其二: 狭义上的文件: 就是我们平常计算机中有着各种文件名+后缀名的文件和文件夹。
而我们平常一直说的 IO
,IO
具体就是 Input 和 output 的这两个单词的缩写,含义就是指 输入 和 输出
。
所以本篇文章,小编将带着小伙伴们深入了解文件相关的 输入输出 的理论知识 ❤️ ❤️ ❤️ ❤️
而下篇文章将带着小伙伴了解文件 输入输出 的 具体实际操作的演示 。 💖 💖 💖 💖
二. 文件的存储与读写规则
1.文件的存储
计算机中文件的存储是在
硬盘
上的, 并以文件夹树状的形式
存储。
存储搞定了, 我们该怎么描述呢?
存储在硬盘,当用户需要 使用某个文件时,就需要进行描述并且读写操作。
于是我们就通过 文件目录这个方式来描述具体的某个文件
鱼式疯言
总结两点:
- 文件夹可以多个 包含文件 ,也可以包含多个文件夹, 文件夹和文件夹之间是呈现树状结构, 注意这里的树状结构 不是 二叉树 ,而是 N叉树 。
- 而
单个文件
才是真正含有 文件内容和信息 的资源。
2. 文件的描述
<1>. 文件的目录
-
文件的目录其本质上就是 文件夹,在以前都是称为目录的,现在人们就都叫做 文件夹。
-
文件目录的特点: 目录可以包含 文件 ,也可以包含 新的目录。
-
文件目录的结构: 呈现
树状结构
,不是二叉树,而是 N 叉树 ,由目录本身包含的 目录和文件 来决定。
<2>. 文件的路径
路径分为两种:
绝对路径:由一个一个 文件名连接 ,并且由 /(斜杠) 或者 \ (反斜杠) 来分割 (在window的操作系统上 斜杆 和 反斜杠 都可以)。
在其他的操作系统(Linux等… )上,一般只支持
/ (斜杆)
来进行分割。
这里的
C:\c Source\c语言\c语言\Debug
就是 绝对路径 。
相对路径:先确定 基准路径
比如基准路径为: C:\c Source\c语言
那么文件的相对路径就可以写为: .\c语言\Debug 就是相对路径
而这里小编需要说明的是
.\
代表是 上一个路径 。
而
..\
代表的是 上上一个路径 。 这样以此类推。
当我们需要描述一个文件时,就是 上面的路径 + 文件名 + 文件后缀 就是我们指定的一个特殊的文件。
鱼式疯言
- 对于一个文件来说,我们都可以利用 绝对路径+ 文件名 + 文件后缀
或者 相对路径 + 文件名 + 文件后缀 的方式进行描述表示。
3. 文件的读写规则
<1>. 文件读写的初识
文件的读:
输入到文件中
。
文件的写:
从文件进行输出
。
故有 读入写出 之说。
但是输入和输出都是相对的某个设备来说的
比如相对于硬盘来说,从文件出来的数据为
输出
。
到达文件的数据为输入
。
但是我们真正的定义为:
数据离 CPU越远, 我们称为:
输出
。
数据离 CPU越近, 我们称之为:
输入
。
鱼式疯言
文件的读操作和写操作的权限是不同的
举个栗子
假如小编有个好看的学习笔记。
-
对于小编的普通朋友来说:他们只可以 观看笔记(读操作),而不能修改笔记(写操作)。
-
而对于小编的最要好的朋友来说: 他们既可以 观看笔记(进行读操作) , 也可以 修改笔记(写操作) 。
-
如果是陌生人的话,他们既不能 观看笔记(读操作) ,也不能 修改笔记(写操作) 。
所以对于 不同的身份 ,读和写的权限都是
有可能不同的
。
三. 文件系统知识
其实以上内容也都属于文件系统的知识,所以下面的两个知识点算是对 上面知识点的文件系统知识的补充。
1.文件读写的本质
我们知道文件的数据是存储到硬盘上的,但硬盘在读写有一个不足就是: 读写速度相对于内存来说很慢 。
那么为什么我们硬盘读写速度相对于内存来说读写速度那么慢呢?
其实啊 ! ! !
文件的读写主要靠上面的 硬盘盘片转动来实现的
, 一般以7200转 / min 的速度转动,只要盘片转到哪就读取到哪这样的原理。
试想一下,如果是顺序读写的话,硬盘的读写会根据盘片的转动来是很快的。
但如果是随机读写呢 ? ? ?
盘片就需要克服自身的惯性, 来进行读写,这样的读写 速度就和内存比就相差很慢很慢啦。
所以这就是为什么硬盘的读写速度远不如内存的读写速度啦。
鱼式疯言
小知识
2. 文件的类型
文件的类型在大体上我们一般分为两种文件类型
- 文本文件
- 二进制文件
<1>. 文本文件
文本文件主要是含有人类可以读的懂的 字符和数字和符号等… 组成的。
例如:.txt 文件, .java文件 , .c 文件等…
<2>. 二进制文件
只含有0 和 1 的二进制数字组成的文件,称为 二进制文件 。
二进制文件
用 记事本读取 时,就会出现一堆乱码的情况。
例如: .class, .exe, .obj等…
鱼式疯言
- 能用 记事本打开并能识别 的是
文本文件
能用 记事本打开不能识别 的是二进制文件
- 文本文件 本质上也是 二进制数字,但计算机根据
utf8
,Ascall
码表 等… 进行 转码成相对应 的字符,从而能被我们人类所能识别。
总结
-
文件IO的初识:认识了 文件IO 的概念,硬盘和内容的不同。
-
文件的存储与读写规则:文件的本质是存储到硬盘上, 并且也熟悉了读写的理解,以及对于文件路径和文件目录的理解 。 目录 = 路径 +
文件名 + 文件后缀。 -
文件系统知识:熟悉了在硬件本身上,文件的读写操作是通过硬盘上的盘片的移动来读写,并且认识到了文件的两个大类: 文本文件 和
二进制文件。
如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正
希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖
更多推荐
所有评论(0)