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都为富文本文件

相关推荐
Biomamba生信基地1 分钟前
R语言基础| 回归分析
开发语言·回归·r语言
黑客-雨15 分钟前
从零开始:如何用Python训练一个AI模型(超详细教程)非常详细收藏我这一篇就够了!
开发语言·人工智能·python·大模型·ai产品经理·大模型学习·大模型入门
Pandaconda20 分钟前
【Golang 面试题】每日 3 题(三十九)
开发语言·经验分享·笔记·后端·面试·golang·go
是梦终空22 分钟前
JAVA毕业设计210—基于Java+Springboot+vue3的中国历史文化街区管理系统(源代码+数据库)
java·spring boot·vue·毕业设计·课程设计·历史文化街区管理·景区管理
加油,旭杏24 分钟前
【go语言】变量和常量
服务器·开发语言·golang
行路见知24 分钟前
3.3 Go 返回值详解
开发语言·golang
xcLeigh28 分钟前
WPF实战案例 | C# WPF实现大学选课系统
开发语言·c#·wpf
NoneCoder38 分钟前
JavaScript系列(38)-- WebRTC技术详解
开发语言·javascript·webrtc
基哥的奋斗历程1 小时前
学到一些小知识关于Maven 与 logback 与 jpa 日志
java·数据库·maven
m0_512744641 小时前
springboot使用logback自定义日志
java·spring boot·logback