? IO是英文Input/Output的缩写,指输入/输出。在计算机科学中,IO通常指计算机与外部设备或网络进行数据传输的过程,包括读取和写入文件,输入和输出数据等。
? 存储的定义: 我们平常意义的存储可能是存储数据的硬盘,在计算机中,用于数据直接处理的是内存,存储数据的是硬盘,内存相较于硬盘来说速度是快成百上千倍的? ,?内存是个不可持久化的,对于内存来说,断电后内存中的数据就会清空? ?外存也就是硬盘,是持久化的数据,断电后外存的数据不会丢失。
? 硬盘的定义:硬盘是一种用于存储数据的计算机存储设备,也被称为硬盘驱动器或硬盘。它由一个或多个旋转的磁盘组成,每个磁盘都有一个磁性表面,可以读写数据。硬盘通常安装在计算机的内部,也可以用作外置设备。硬盘是计算机中最基本的存储设备之一,用于存储操作系统、应用软件、文件和其他数据
计算机中存储设备:
1.CPU | 最快 | 最小 | 最贵 | 丢失数据 |
2.内存 | 其次 | 其次 | 其次 | 丢失数据 |
3.硬盘 | 最慢 | 最大 | 最便宜 | 不丢失数据 |
? 这里要注意硬盘 != 磁盘,磁盘是我们小时磁带是磁盘外带的另外一种(MP3,MP4),软盘硬盘(机械硬盘)是通过磁性介质来存储二进制数据的,以前硬盘也是非常贵的但是有长江存储海康威视国产商兴起就把价格打下来了。
? 文件系统是按照“树形结构”来组织文件的,这里的树不是“二叉树”,而是N叉树,每一个普通文件(非目录)就是叶子节点。
1.绝对路径,指的就是从根节点从发(Windows是盘符)一层一层最终到达目标文件。
2. 相对路径,先指定一个“当前目录”/“工作目录”/“基准目录”,从当前目录出发,找到目标文件。
小插曲:
? 操作系统中,分隔目录的各个部分,正统使用/(上古时期的知名操作系统),后来横空出世了一个叫做DOS(微软早期的成名战)。产品经理突然改了需求,就非得用\后来很多都不买账就退而求其次,同时支持/和\,后来Windows属于DOS继任者,也就继承了上述的设定,而Linux都是/。
? 分为俩类:1. 文本文件(简单理解为打开是你能看的懂的英文或者汉字)
? ? ? ? ? ? ? ? ? ? 2. 二进制文件(简单理解为它是给计算机看的,打开是一大堆乱码)
举一些他俩的列子:1. 文本文件:文本文档,.c ,.java,.cpp也是文本文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2. 二进制文件:图片,音频,视频,可执行程序,动态库都是二进制文件
public class IODemo1 {
public static void main(String[] args) throws IOException {
File f = new File("./test.txt");
//File f = new File("C:/User/1/test.txt");
System.out.println(f.getParent());
System.out.println(f.getName());
System.out.println(f.getPath());
System.out.println(f.getAbsolutePath());
System.out.println(f.getCanonicalPath());//对于绝对路径的简化
}
}
?运行结果: