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

相关推荐
Boilermaker19921 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维1 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS1 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂2 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs2 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_992 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子2 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34162 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
古城小栈2 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90902 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab