当前位置: 首页 > news >正文

【Java第24期】:IO、存储、硬盘和文件系统的相关知识

hi~好久不见!
你们的小猪回来了!
在这里插入图片描述
前段时间有些事情,没怎么写博客,这期博客给你们讲讲文件操作。

文章目录

  • 前言
  • 一,IO的相关知识
    • 1,IO的基本概念
    • 2,文件操作---IO流
  • 二,存储和硬盘的相关知识
  • 三,文件操作
    • 1,认识文件
    • 2,树型结构和目录
    • 3,文件路径

前言

如果有哪里不够完善或者写错了,请大佬们帮忙指正,谢谢!
在这里插入图片描述

一,IO的相关知识

1,IO的基本概念

IO 就是指“输入和输出”,由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等就需要IO接口。根据针对的对象不同,IO模式可以分为磁盘IO模型和网络IO模型。
IO操作会涉及到用户空间和内核空间的转换,先来理解以下规则:

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

2,文件操作—IO流

(这里简单总结一下IO流,后几篇博客会详细介绍)
Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。注意,有 File 对象,并不
代表真实存在该文件。
在这里插入图片描述
我们可以如上图一样理解IO流,其中有三个比较重要的类,分别是InputStream、FileInputStream和OutputStream。

二,存储和硬盘的相关知识

存储:根据不同的应用环境通过采取合理、安全、有效的方式将数据保存到某些介质上并能保证有效的访问。那什么是文件存储呢?
文件存储(也称为文件级存储或基于文件的存储),数据会以单条信息的形式存储在文件夹中,如果需要访问该数据,可以查找相应的路径。存储在文件中的数据会根据数量有限的元数据来进行整理和检索,这些元数据会告诉计算机文件所在的确切位置。它就像是数据文件的库卡目录。
例子图片:
在这里插入图片描述
硬盘:一般是指电脑硬盘,是计算机的主要存储设备。用来保存文件数据。

三,文件操作

1,认识文件

针对硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念。
在这里插入图片描述
文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数据而存在,我们把这部分信息可以视为文件的元信息。
在这里插入图片描述
在这里插入图片描述

2,树型结构和目录

我们通过层级结构来管理文件------数据结构中的树型结构,也就是我们所说的文件夹和目录。
在这里插入图片描述

3,文件路径

文件路径包括绝对路径和相对路径,拿树型结构来说,从一个树型结构的根节点开始,到目标节点,此路径为绝对路径;从任意节点出发到目标节点,此路径为相对路径。
绝对路径:
在这里插入图片描述
相对路径:

在这里插入图片描述
文件由于被操作系统进行了管理,所以根据不同的用户,会赋予用户不同的对待该文件的权限,一般地可以认为有可读、可写、可执行权限。

以上就是文件操作的基本内容,希望对你有帮助!
在这里插入图片描述
下期再见了~

请添加图片描述

相关文章:

  • ZLMediaKit学习(一):Window环境下推拉流
  • voip|网络电话,软件实现电信座机
  • 天玑810和天玑800u哪个好 天玑810和天玑800u差多少
  • Sulfo-Cy3 NHS酯,Sulfo-Cy3 NHS ester,水溶性荧光染料Cy3标记琥珀酰亚胺活化酯
  • Python输入漏洞利用(Python input漏洞)
  • 重启tomcat-Tomcat服务器怎么重启?
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • SQL(及存储过程)跑得太慢怎么办?
  • 如何选择国际通知短信服务商?
  • RocketMQ回顾整理
  • 【大数据分析】FordFulkerson算法(JAVA实现)
  • Linux ARM平台开发系列讲解(GMSL摄像头篇)1.2 MAX9296 GMSL链路配置
  • 小波神经网络的基本原理,小波神经网络算法原理
  • 摄影测量+元宇宙!虚拟校园还有哪些值得我们期待的?
  • LeetCode_数组_中等_915.分割数组
  • @angular/forms 源码解析之双向绑定
  • Android Volley源码解析
  • android图片蒙层
  • HTTP中GET与POST的区别 99%的错误认识
  • JS笔记四:作用域、变量(函数)提升
  • JWT究竟是什么呢?
  • Python语法速览与机器学习开发环境搭建
  • 从setTimeout-setInterval看JS线程
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 使用权重正则化较少模型过拟合
  • 微信小程序开发问题汇总
  • 想写好前端,先练好内功
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 移动端 h5开发相关内容总结(三)
  • 怎样选择前端框架
  • 阿里云ACE认证之理解CDN技术
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (2)STM32单片机上位机
  • (C++)八皇后问题
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (八十八)VFL语言初步 - 实现布局
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (四) 虚拟摄像头vivi体验
  • (一)UDP基本编程步骤
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .sh
  • @软考考生,这份软考高分攻略你须知道
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [ASP.NET MVC]Ajax与CustomErrors的尴尬
  • [EFI]ASUS EX-B365M-V5 Gold G5400 CPU电脑 Hackintosh 黑苹果引导文件
  • [ffmpeg] aac 音频编码
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间
  • [HUBUCTF 2022 新生赛]
  • [InnoDB系列] -- SHOW INNODB STATUS 探秘