Java之文件操作和IO(前置知识)

一、认识文件

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

注意:硬盘 != 磁盘

磁盘属于外存的一种.

而硬盘分为机械硬盘和固态硬盘.

机械硬盘:磁性介质存储

固态硬盘:内部为集成电路,和磁性介质无关. -> 优势:读写速度快了很多.

如上图就是磁盘,类似一个碟片机的东西.上面那个尖叫做磁头(很细的针头,能感知磁性的变化,磁头悬停在盘片不同位置可以进行读取),圆的是盘片,可以高速旋转以让磁头读取.

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

二、树形结构组织和目录

同时,随着文件越来越多,对文件的系统管理也被提上了日程,如何进行文件的组织呢?就是按照层级结构进行组织-也就是我们数据结构 中学习过的树形结构.这样,一种专门用来存放管理信息的特殊文件产生了,也就是我们平时所谓文件夹或者目录的概念.

三、文件路径

如何在文件系统中定位我们的一个唯一的文件就成为当前要解决的问题,这难不倒计算机科学家,因为从树形结构 的角度来看,树中每个结点都可以被一条从根开始,一直到达所有结点的路径所描述 ,而这种描述方式就被称为文件的绝对路径.(可以想象成哈希表结构,每一个目录中,可根据名字非常快速地找到子元素)

除了可以从根开始进行路径的描述,我们可以从任意结点出发,进行路径的描述,而这种描述方式被称为相对路径 ,相当于当前所在结点的一条路径.

例: 在C:\Users\1\test.txt这条路径中找test.txt.

如果当前目录为C:\Users\1

相对路径: ./test.txt (.表示当前目录)

当前目录为 C:\Users

相对路径: ./1/test.txt

当前是 C:\Users\1\AppData

相对路径: ../test.txt (..表示上层目录)

在实际开发中用的更多是相对路径.

其它知识

即使是普通文件,根据其保存数据的不同,也经常被分为不同类型,我们一般简单的划分为文本文件和二进制文件,分别指代保存被字符集编码的文本和按照标准格式保存的非被字符集编码过的文件.

给定一个文件如何判断是文本二进制 ->用记事本判定

使用记事本打开,如果是正常内容 -> 文本文件, 乱码 -> 二进制文件

.class,图片,音频,视频,可执行程序,动态库...属于二进制文件

文本文档,.c,.java,.cpp为文本文件

还有一种富文本文件,譬如word,docx都为富文本文件

相关推荐
01漫游者1 分钟前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript
GottdesKrieges2 分钟前
OceanBase恢复常见问题
java·数据库·oceanbase
IGAn CTOU2 分钟前
Java高级开发进阶教程之系列
java·开发语言
leo825...6 分钟前
Claude Code Skills 清单(本地)
java·python·ai编程
csbysj20209 分钟前
SQL NULL 函数详解
开发语言
其实防守也摸鱼12 分钟前
CTF密码学综合教学指南--第三章
开发语言·网络·python·安全·网络安全·密码学
NGSI vimp12 分钟前
Java进阶——如何查看Java字节码
java·开发语言
We་ct1 小时前
深度剖析浏览器跨域问题
开发语言·前端·浏览器·跨域·cors·同源·浏览器跨域
身如柳絮随风扬1 小时前
多数据源切换实战:从业务场景到3种实现方案全解析
java·分布式·微服务
skywalk81631 小时前
在考虑双轨制,即在中文语法的基础上,加上数学公式的支持,这样像很多计算将更加简单方便,就像现在的小学数学课本里面一样,比如:定x=2*x + 1
开发语言