文件与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.mfbz.cn/a/591876.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【知识加油站】——机电产品数字孪生机理模型构建

明确一种多领域、多层次、参数化、一致性的机电一体化装备数字孪生机理模型构建准则! 关键词英文简称: 数字孪生:DT物联网:IoT网络物理系统:CPS高级架构:HLA统一建模语言:UML数控机床&#xf…

Sarcasm detection论文解析 |A2Text-Net:一种用于讽刺检测的新型深度神经网络

论文地址 论文地址:A2Text-Net: A Novel Deep Neural Network for Sarcasm Detection | IEEE Conference Publication | IEEE Xplore github:lliyuan1117/A2Text-Net (github.com) 论文首页 A2Text-Net:一种用于讽刺检测的新型深度神经网络 &#x1f4c5…

Win11 怎么让软件运行后台全部显示在任务栏上 win11任务栏展开显示所有软件图标

Win11 怎么让软件运行后台全部显示在任务栏上 win11任务栏展开显示所有软件图标 方法二 搜索cmd 打开命令行面板 然后输入 explorer shell:::{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9}就能显示出来了 ## 方法三 通知区域图标不存在 如图,显示为这样 这种时候桌面…

深入解析Java中的String对象及其性能优化

作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) ❤️觉得文章还…

uniapp乡村社区户籍问外来人员管理系统 微信小程序python+java+node.js+php

基于微信小程序的外来人员管理系统项目的概述设计分析,主要内容有的私教预约平台系统平台的具体分析,进行数据库的是设计,数据采用MySQL数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以…

用Jenkins Gerrit-Trigger插件实现提交gerrit后自动启动编译验证-解决编译依赖问题

用Jenkins Gerrit-Trigger插件实现提交gerrit后自动启动编译验证-CSDN博客讨论了如何利用插件在提交gerrit的时候自动出发一个jenkins job编译固件,但是没有解决编译依赖问题。本文提出一种解决方案 首先在git commit -m ""的时候在commit message中设置Depend-On:…

Typescript基础语法(四)

模块化 模块化是指将复杂的程序拆解为多个独⽴的⽂件单元,每个⽂件被称为⼀个模块。在 TypeScript 中,默认情况下,每个模块都拥有⾃⼰的作⽤域,这意味着在⼀个模块中声明的任何内容(如变量、函数、类等)在该…

我们的手机是如何连接上网的?骨干网又是什么?

什么是骨干网(Backbone Network) 几台计算机连接起来,互相可以看到其他人的文件,这叫局域网。整个城市的计算机都连接起来,就是城域网。把城市之间连接起来的网就叫骨干网。 这些骨干网是国家批准的可以直接和国外连…

CUDA CPP Unity Compute Shader

为学 开始一个新的学习计划,涵盖: 主题学习内容CUDAProfessional CUDA C Programming/NVIDIA CUDA初级教程视频(周斌)CCPrimer / The Cherno CPPUnity Compute ShaderUdemy Learn to Write Unity Compute ShadersLinear AlgebraMIT 18.06 Prof.Gilbert…

【Anaconda 3 】Jupyter Notebook 的安装配置及使用

Jupyter Notebook 的安装配置及使用 一、引言 Jupyter Notebook 是一种交互式笔记本,它允许用户将代码、注释、方程式、可视化内容等整合到一个文档中,并支持多种编程语言,如 Python、R、Julia 等。它在数据科学、机器学习和教育领域中得到…

Idea 自动生成测试

先添加测试依赖&#xff01;&#xff01; <!--Junit单元测试依赖--><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.1</version><scope>test</scope><…

MATLAB 集成

MATLAB 集成&#xff08;Integration&#xff09; 集成处理两种本质上不同的问题。 在第一种类型中&#xff0c;给出了函数的导数&#xff0c;我们想找到函数。因此&#xff0c;我们从根本上扭转了分化的过程。这种反向过程称为反微分&#xff0c;或者找到原始函数&#xff0…

基于SSM的宠物领养平台(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的宠物领养平台&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Spri…

专项技能训练五《云计算网络技术与应用》实训7-1:安装mininet

文章目录 mininet安装1. 按6-1教程安装opendaylight控制器。2. 按6-2教程安装RYU控制器。3. 按5-1教程安装openvswitch虚拟交换机并开启服务。4. 将老师所给mininet安装包试用winSCP传送至电脑端。5. 安装net-tools。6. 安装mininet7. 安装完成后&#xff0c;使用命令建立拓扑&…

Stable Diffusion webUI 配置指南

Stable Diffusion webUI 配置指南 本博客主要介绍部署Stable Diffusion到本地&#xff0c;生成想要的风格图片。 文章目录 Stable Diffusion webUI 配置指南1、配置环境&#xff08;1&#xff09;pip环境[可选]&#xff08;2&#xff09;conda环境[可选] 2、配置Stable Diffu…

JavaScript 动态网页实例 —— 文字移动

前言 介绍文字使用的特殊效果。本章介绍文字的移动效果,主要包括:文字的垂直滚动、文字的渐隐渐显、文字的闪烁显示、文字的随意拖动、文字的坠落显示、页面内飘动的文字、漫天飞舞的文字、文字的下落效果。对于这些效果,读者只需稍加修改,就可以应用在自己的页面设计中。 …

农作物害虫检测数据集VOC+YOLO格式3575张10类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;3575 标注数量(xml文件个数)&#xff1a;3575 标注数量(txt文件个数)&#xff1a;3575 标注…

电话号码的字母组合 【C++】【力扣刷题】

解题思路&#xff1a; 以第一个为例,digits “23”&#xff0c;表明从电话号码的按键中选取2和3这两个字符&#xff0c;然后去寻找它们各自所对应的字母&#xff0c;这里每一个数字字符所对应的字母的不同&#xff0c;0对应的是空字符&#xff0c;而1的话题目中讲到是不对应任…

中药辨别二

声明&#xff1a;参考懒兔子公益课&#xff0c;参考网络资料和部分网络图片整理而成&#xff0c;仅供学习使用&#xff0c;不提供商业活动价值&#xff0c;文章描述的中药仅供学习&#xff0c;请在专业医师或专业医生指导下使用药材&#xff0c;擅自或其他情况下使用&#xff0…

LeetCode406:根据身高重建队列

题目描述 假设有打乱顺序的一群人站成一个队列&#xff0c;数组 people 表示队列中一些人的属性&#xff08;不一定按顺序&#xff09;。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi &#xff0c;前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数…