文件与IO基础常识知识

在这里,只介绍理论知识,不介绍代码。

目录

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1410887.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

本地基于知识库的大模型的使用教程

本地基于知识库的大模型的使用教程 启动 双击 大模型启动.bat文件,内容如下: cmd /k "cd /d G:\Anaconda3\Scripts && activate.bat && cd /d D:\docdb_llm && conda activate python3.11 && python startup.py…

MFC 列表控件删除实例(源码下载)

1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例(源码下载) 》 2、程序功能选中列表控件某一项,删除按钮由禁止变为可用,点击删除按钮,选中的项将删除。 3、首先在主界面添加一个删除参数按钮。 4、在myDlg.cpp 文件…

STM32的TIM输入捕获和PWMI详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. IC输入捕获 2. 频率测量 3. 主模式、从模式、触发源选择 4. 输入捕获基本结构 5. PWMI模式 6. 代码示例 6.1 PWM.c 6.2 PWM.h 6.3 IC.c 6.4 IC.h 6.5 完整工程文件 输出比较可以看下面这篇…

python报错SyntaxError

如果报这个错, 在你的相应的demo.py文件首行输入下面的,可以多试一下,之后就好了。 这个解决方法也是参考其他大佬的做法,不知道为什么python中#是注释,这个也会起作用。 然后就神奇的发现问题解决了。发现下面的代码…

window系统安装MySQL

MySQL的安装和配置 根据不同的系统平台,MySQL由不同安装方式和安装包。 官方下载对应的安装包 官网:www.mysql.com 下载地址:MySQL :: Download MySQL Community Server (Archived Versions) window系统 一、安装包(Windows…

进位计数制

目录 前言 最古老的计数方法 十进制数 推广:r 进制计数法 任意进制->十进制 二进制<->八进制,十六进制 十进制->任意进制 真值和机器数 总结: 前言 本篇文章我们正式进入第二章:数据的表示和运算,通过第一章的学习我们知道了现代计算机的结构 那数据如何…

华为OD机试 - 会议室占用时间段(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

✔ ★Java项目——设计一个消息队列(五)【虚拟主机设计】

虚拟主机设计 创建 VirtualHost实现构造⽅法和 getter创建交换机删除交换机创建队列删除队列创建绑定删除绑定发布消息 ★路由规则1) 实现 route ⽅法2) 实现 checkRoutingKeyValid3) 实现 checkBindingKeyValid4) 实现 routeTopic5) 匹配规则测试⽤例6) 测试 Router 订阅消息1…

动态规划-子序列问题1

文章目录 1. 最长递增子序列&#xff08;300&#xff09;2. 摆动序列&#xff08;376&#xff09;3. 最长递增子序列的个数&#xff08;673&#xff09;4. 最长数对链&#xff08;646&#xff09; 1. 最长递增子序列&#xff08;300&#xff09; 题目描述&#xff1a; 状态表…

38.基础乐理-其余调号说明

目前只写了自然大调&#xff0c;还有其它的调式没有写&#xff0c;大调中还有 和声大调 与 旋律大调&#xff0c;除了大调&#xff0c;还有小调式、五声调式、中古调式等还有很多很多&#xff0c;这些东西是需要对于调号、拍号&#xff0c;对于五线谱、对于音程和弦都有一定程度…

OS考研chapter3内存管理

目录 一、基础知识点补充 1.内存、内存地址概念与联系 2.按byte编址 vs 按字编码 二、进程运行的基本原理 1.指令的工作原理 2.逻辑地址 vs 物理地址 3.从写程序到程序运行 &#xff08;1&#xff09;编辑源代码 &#xff08;2&#xff09;编译 &#xff08;3&#xf…

JZ69跳台阶

&#x1f600;前言 青蛙跳台阶是一个经典的问题&#xff0c;它描述了一只青蛙每次可以跳上1级台阶或者2级台阶&#xff0c;问跳上一个n级的台阶有多少种跳法。这个问题看似简单&#xff0c;实则蕴含了一定的数学思维和递推关系。在本文中&#xff0c;我们将通过分析问题的特性和…

合并两个有序数组(详解)

合并两个有序数组&#xff08;详解&#xff09; 合并两个有序数组 题目&#xff1a; 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;…

空闲缓冲区(empty) 和 非空缓冲区(full) 的的概念和区别【操作系统 生产者——消费者进程】

首先&#xff0c;我们得有个环境——通常是个缓冲池&#xff0c;这个池子里可以塞很多缓冲区&#xff0c;它们是用来存放数据的。生产者就是那个不停造东西的家伙&#xff0c;而消费者则是等着用这些东西的人。 1. 空闲缓冲区&#xff08;empty&#xff09;&#xff1a; 这玩意…

顺序表经典算法

顺序表经典算法 1.移除元素 题目&#xff1a; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的…

Linux编辑器调试器 gcc/g++ gdb 编译过程及使用讲解

这恋爱呀 我有两不谈 第一异性不谈 因为我们性别不一样 我知道的她不知道相处起来太累 第二同性不谈 因为我们性别一样 我知道的他也知道相处起来太无聊了 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–…

雅思(IELTS)优秀小作文分享

IELTS优秀小作文分享 柱状图 本篇范文个人评分是8分或者8.5分&#xff0c;属于能找到的最优质的范文了 题目如下: The two sets of bar charts illustrate the amount of time that teenagers (boys, girls, and all) in the UK spend chatting online and playing game c…

DHCPv4_CLIENT_ALLOCATING_01: 在其本地物理子网上广播DHCPDISCOVER消息

测试目的&#xff1a; 确保客户端能够在其本地物理子网上广播DHCPDISCOVER消息。 描述&#xff1a; 该测试用例旨在验证DHCP客户端是否能够正确地在其本地物理子网上广播DHCPDISCOVER消息&#xff0c;以便进行IP地址的自动分配。 测试拓扑&#xff1a; 测试步骤&#xff1a…

汇报进度26届cpp,目前来说之后的规划,暑假打算回家10天就留校沉淀了

汇报一下进度吧&#xff0c;26双非菜鸡&#xff0c;cpper. 但目前学了一些go &#xff0c;辅修吧&#xff0c;距离发的上个动态已经过去3个月了&#xff0c;真的觉得找实习时间来不及&#xff0c;现在leetcode 100多道题&#xff0c;前几天蓝桥杯整了个省二&#xff0c;把OS和…

利用大语言模型(KIMI)构建智能产品的控制信息模型

数字化的核心是数字化建模&#xff0c;为一个事物构建数字模型是一项十分复杂的工作。不同的应用场景&#xff0c;对事物的关注重点的不同的。例如&#xff0c;对于一个智能传感器而言&#xff0c;从商业的角度看&#xff0c;产品的信息模型中应该包括产品的类型&#xff0c;名…