在这里,只介绍理论知识,不介绍代码。
目录
1.IO
1.1.字面概念
1.2.输入输出模型
2.文件
2.1.文件目录
2.2.文件路径
2.3.文件分类
1.IO
为了我们接下来学习的文件IO,所以我们先来认识什么是IO。
1.1.字面概念
(1)I,Input,表示输入
(2)O,Output,表示输出
那什么是输入、什么是输出,也是一种认为的规定,下面我们介绍
1.2.输入输出模型
任何的输入、输出操作,都是以CPU为参照的。
(1)远离CPU的操作,称为输出操作
(2)靠近CPU的操作,称为输入操作
(3)图示
什么意思呢?比如CPU中的数据到内存中,就是输出操作;内存中的数据加载到CPU中,就是输入操作。
2.文件
文件?文件夹?这里的文件是我们平时所说的文件吗?其实并不是。
上面的只是文件夹,不是真正的文件。
(1)广义上的文件是指:在操作系统中的各种软件资源、硬件资源都抽象成文件,如:网卡等
(2)而后面我们要介绍的文件,属于侠义上的,也就是指文件夹中的文件。如:.txt,.exe等等
2.1.文件目录
(1)其实文件目录也称为一种文件路径,根据这个路径一层一层往下走,最终会到达目标文件。
(2)举例
很明显它不是,为什么?点开就可以了
所以说,目录只是一种抽象的路径,并不是真正的文件
2.2.文件路径
一级一级的文件目录就构成了文件路径。
而路径又分成两种:绝对路径和相对路径。目录和目录之间,我们推荐使用/
(1)绝对路径
例如:D:\JavaCode\algorithm。一般是以什么盘开头的
下面这个就是绝对路径
(2)相对路径
相对路径的起点可以是任何的地点。比如从某个位置出发,达到最终目的文件的路径,称为相对路径。
相对路径有几种类别:在某一级目录上,找到某一个文件;最终文件在我们这一级目录的上一级目录里面
下面我们通过几个例子说明:
我们要找到一个叫:Java45的文件
绝对路径是这样的:D:\JavaCode\algorithm\Java45
相对路径的意思就是,从某一个位置开始,找到最终位置。
1)假设我们在algorithm这级目录上,绝对路径是:D:\JavaCode\algorithm
找到Java45的相对路径是:./Java45
.表示当前路径,也就是:D:\JavaCode\algorithm
2)假设我们在JavaCode这级目录上,也就是:D:\JavaCode
相对路径是:./algorithm/Java45
3)假设我们目标文件在上一级目录,绝对路径是:D:\JavaCode\algorithm\leetCode3
相对路径是:../Java45
..就是回到上一级目录
2.3.文件分类
(1)文本文件和二进制文件
文件一般分为文本文件和二进制文件。无论是哪一种文件,本质上都是属于二进制文件。辨别它们的一个简单粗暴的方法,就是可以看的懂得就是文本文件,看不懂得就是二进制文件。
(2)两种文件类
这里的文件类是什么呢?就是系统给我们提供的api,可以用来操作文件,比如:打开文件,写文件,删除文件等等操作。
第一种:针对文件系统进行操作
如:创建文件,删除文件,创建目录,重命名文件
第二种:针对文件内容进行操作
读文件、写文件(就是我们常说的操作文件,可以将数据保存在文件上)
而第二种文件操作,又分为两种:操作字节流和操作字符流,使用的都是不同的api。而在操作文件内容时,也是可以使用操作文件系统的类,也就是File