JavaWeb——IO、存储、硬盘、文件系统相关常识

news/2025/1/9 3:33:16/

目录

一、IO

1、定义

二、存储和硬盘

1、存储

2、硬盘

三、文件系统

1、文件

(1)、定义

(2)、分类

(3)、操作

2、树形结构和目录

3、路径

(1)、定义

(2)、分类


一、IO

1、定义

IO 是指文件的输入和输出,通常是磁盘等需要的接口。运行数据在内存中停留的地方就是CPU核心来执行时涉及到的数据交换的地方。

注:对象不同IO模式也不尽相同,可以分为磁盘IO模型和网络IO模型。

 

IO操作涉及到用户空间和内核空间的转换:

  • 内存空间分为用户空间和内核空间,也称为用户缓冲区和内核缓冲区
  • 用户的应用程序不能直接操作内核空间而是需要将数据从内核空间拷贝到用户空间才能使用
  • 无论是读操作还是写操作,都只能在内核空间中执行
  • 磁盘IO和网络IO请求加载到内存的数据都是先放在内核空间的

二、存储和硬盘

1、存储

存储是指将数据合理安全的保存到某些介质上并保证长时间有效的访问。

文件存储是指数据会以单条信息的形式存储在文件夹中,如果需要访问该数据可以通过相应的路径来查找对应的文件。

2、硬盘

硬盘一般是指电脑硬盘(计算机的主要存储设备),主要用来保存文件数据。

硬盘分为:有数据存储的空间和暂时没有数据存储的空间。

有数据存储的部分可以分为数据1、数据2等,每个数据又可以被分为文件1、文件2等。

文件就是对硬盘中数据的抽象概念,因此硬盘数据的读写就是对文件的读写问题,文件主要由OS + 文件系统统一管理。

硬盘和内存对比:

  • 内存速度比硬盘快
  • 内存空间比硬盘小
  • 内存成本比硬盘贵
  • 内存持久化差,掉电后数据丢失

三、文件系统

1、文件

(1)、定义

狭义上的文件是指:针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念,就类似办公桌上的一份份真实的文件一般。

文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数据而存在,我们把这部分信息可以视为文件的元信息。

(2)、分类

文件可以被分为文本文件、二进制文件和其他文件:

  • 文本文件:存储的是文本,文本文件的内容是由ascii字符构成的。文本文件里存储的数据就是遵守ascii或者其他字符集编码所得到的文件但本质上存的是字符。文本文件可以是 .txt类型、.java类型、.c类型等。
  • 二进制文件:存储的是二进制数据,没有任何字符集的限制。二进制文件可以是 .class类型、.exe类型、.jpg类型、.mp3类型等。

(3)、操作

文件操作系统:创建文件、删除文件、重命名文件、创造目录

文件内容操作:针对文件内容进行读和写

2、树形结构和目录

随着文件的增多,我们可以按照层级结构进行管理文件,也就是相当于数据结构中的树形结构。这样一种专门用来存放管理信息的特殊文件诞生了,也就是我们平时所谓的文件夹或者目录的概念。

文件是以树形结构进行管理的,无论是目录或者文件都只是树上的一个结点,一个结点可以有多个孩子。但这颗文件树只是逻辑结构,而不是硬盘上的物理结构

3、路径

(1)、定义

在文件系统中定位一个唯一的文件可以从树型结构的角度来看,树中的每个结点都可以被一条从根开始,一直到达的结点的路径所描述,而这种描述方式就被称为文件的绝对路径。因此路径就是文件系统上一个文件/目录的具体位置

注:目录(计算机专业术语)==文件夹(通俗说法) 

(2)、分类

路径可以被分为绝对路径和相对路径两种:

  • 绝对路径:从一棵树的根结点处出发的路径,即从盘符开始一层一层往下找,最后总是能够确定一个唯一的文件。
  • 相对路径:从当前所在的位置出发的路径,即从某个特定目录出发,一层一层往下找。但当前位置位置改变路径就可能失效。

注:文件系统上,任何一个文件对应的路径是唯一的,不会存在两个相同的路径但是文件不同的情况。在Linux中可能存在一个文件有两个不同的路径但能找到它,在windows上不存在。windows上可以认为路径和文件是一一对应的,路径就相当于一个文件的双方标识。

路径表示中的两个特殊的符号:“.”和“..”。

  • “.”表示从当前位置开始
  • “..”表示回到当前位置的父结点开始。但该符号在根目录下使用该符号是没效果的,根没有父节点。

注:这两个符号一般在相对路径中使用。


http://www.ppmy.cn/news/45282.html

相关文章

记录一 :对象锁和类锁

目录 简介 通过8个案例来解释说明 案例及总结 简介 阿里规约【强制】高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能 锁区块,就不要锁整个方法体;能用对象锁,就不要用类锁。…

Windows环境下调试DAB-DETR与Deformable-DETR

先前都是在服务器上运行DETR的相关程序,服务器使用的是Linux,所以运行较为简单,但如果想要简单的debug的话就没必要使用服务器了,今天便来在Winodws环境下调试DETR类项目,这里以Deformable-DETR与DAB-DETR为例。 首先是…

Anaconda及其他说明及安装

来自神秘人的投稿! 以下内容来源于官方视频说明:Anaconda Distribution versus Miniconda和其他整理与添加。 一、基础信息了解 1. 什么是Anaconda Anaconda Distribution:形象的比喻——一台笔记本电脑,一切都组装好了&#x…

开发者笑疯了! LLaMa惊天泄露引爆ChatGPT平替狂潮,开源LLM领域变天

来源: 新智源 微信号:AI-era Meta的LLaMA模型开源,让文本大模型迎来了Stable Diffustion时刻。谁都没想 谁能想到,一次意外的LLaMA泄漏,竟点燃了开源LLM领域最大的创新火花。 一系列表现出色的ChatGPT开源替代品——「羊驼家族」…

单片机学习之中断与定时/计数器

记录学习中断的使用。 1. 使用工具 使用开发板: 普中科技开发板 编译软件: keil 2. 复习中断及相关概念 CPU在处理 事件A 时,中断源 发出中断请求,请求cpu处理事件B ,cpu 中断 当前工作,转去处理事件B&a…

Nacos 客户端服务注册源码分析-篇二

Nacos 客户端服务注册源码分析-篇二 继续接上回,上回分析到 NacosNamingService 的整个注册的流程,其实是通过 NacosFactory.createNamingService 方法,反射获取 NacosNamingService 接口的实现类 NacosNamingService ,而 NacosN…

分享5款办公效率工具|让你早点下班

如果每天你的工作都很多,做不完需要加班怎么办? 不知道你会不会加班,但是我肯定不会,因为我知道哪些高效率的办公工具,可以帮助我早点下班,今天来给大家分享一下。 1.FlowUs FlowUs 是一款为个人和团队打造的新一代生…

自定义类型——位段

什么是位段? 位段又叫做位域,具体是一种可以把数据以位的形式紧凑的存储,并允许程序员对此结构位进行操作的数据结构 当结构体的成员变量定义之后浪费了较大的空间 (比如int a 2,则浪费了30个比特位的空间&#xff0…