java I/0基础知识

java I/0

1.体系结构

硬件

1.处理器(CPU)、存储器(内存)、输入设备(Input Device)、输出设备(Output Device) — IO

CPU只能和内存做直接的数据交换

Input Device:现实中的物理信号(光信号,电信号,波信号)-> 数字个数,

存储在内存中

Output Device:数字 -> 物理信号

IO设备

显示器(O)、触屏显示器(IO)、鼠标(I)、键盘(I)、摄像头(I)

硬盘(IO)、网卡(IO)

硬盘

硬盘(Hard Disk Drive)的实现

1.磁盘:利用磁性实现的一种存储方式 硬盘(机械硬盘)

磁盘更适合做连续数据的读写,而不适合做随机数据的读写

2.固态硬盘:(Solid State Disk)

3.闪存(Flash Memory)

文件是对硬盘中数据的抽象概念

2.硬盘存储

变量、对象本质上的编程语言对硬件中内存的抽象

硬盘数据的读写

-> 文件的读写

OS + 文件系统(FileSystem)统一管理文件

我们看到的文件的基本知识

文件

1.文件被以树形结构(数据结构学过的树,但不是二叉树)进行管理

2.文件可以大体分成两大类:

1)存储数据的文件 — 普通文件(俗称的文件)

2)管理树形结构组织数据的文件 — 目录/文件夹(directory/dir)

3.这棵文件树只是一个逻辑结构,而不是硬盘上的物理结构

1.普通文件

在Windows OS 下,以文件后缀(file suffiex)来标记出这个文件存储的内容是什么内容

*.txt 普通文本 *.docx Word文档

2.可见 or 隐藏

目录、文本文件、不是文本的文件(二进制文件)

文件的路径(Path):根据一个规则,从文件树上唯一确定一个位置,这个位置一定对应到某个节点,但是这个节点可以不存在

路径

1.绝对路径(absolute path):从一棵树的根节点出发描述的路径

2.相对路径(relative path):从"我们"所在的当前位置出发,描述的路径

什么叫”我们“所在的位置:每个进程都有一个当前工作目录(current working directory),一般一个进程的启动目录就是当前工作目录

真实中怎么去描述路径(重点):windows下,现以绝对路径为例

在代码的字符串中如何表示这个路径

String path = “D: \ \ 课程 \ \ 2022-06-27-2022火箭班 -IO” (使用\ \ 表示 \)

Windows 使用 \ 作为路径分隔符,Linux(Unix/XOS)使用 / 作为路径分隔符

java可以跨平台,会自动帮我们处理这个问题

代码中写”/“ 或者”\ \ “都可以。由于”/“不用转义,所以一般用”/“为主

路径表示中的两个特殊的符号一个点(“.”)和两个点(“…”)

其中,"."表示在当前位置(目录)不同

其中,"…"表示回到当前位置的父节点(目录)上

这两个符号一般在相对路径上使用较多

关于文件的路径

1.路径是树上找到一个节点的位置

2.路径并不表示文件一定存在

3.路径分为绝对路径和相对路径

4.当前位置:进程的当前工作目录

5.文件路径""

文件系统中,以结点为单元进行操作(在代码层面)

文件移动操作(文件重命名、文件剪切 + 粘贴):结点的移动(重命名or移动到其他节点下)

文件的复制操作(复制 + 粘贴):新建结点 + 内容的复制

目录移动操作(目录重命名、目录剪切 + 粘贴)

目录复制操作:以该节点为根的一颗子树的复制

删除:默认情况下只能删除普通文件or空目录。只能删除结点,不能展出子树

删除空目录:对整棵树的删除

树的操作,需要转换橙结点的操作:以目录的复制为例,遍历(深度 or 广度)整棵树,然后对其中的每个结点进行复制

3.实现基本IO操作

文件数据 = 元数据 + 内容数据

对于文件系统树的操作

判断是否存在、判断是否是目录、创建、删除、重命名

普通文件or空目录。只能删除结点,不能展出子树

删除空目录:对整棵树的删除

树的操作,需要转换橙结点的操作:以目录的复制为例,遍历(深度 or 广度)整棵树,然后对其中的每个结点进行复制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值