总结 IO、存储、硬盘、文件系统相关常识
目录
一、IO是什么?
二、存储
三、硬盘
四、文件系统
4.1 文件目录和组织方式
4.2 文化路径
4.3 文件类型
4.4 文件系统操作
一、IO是什么?
IO是英文Input/Output的缩写,指输入/输出。在计算机科学中,IO通常指计算机与外部设备或网络进行数据传输的过程,包括读取和写入文件,输入和输出数据等。
二、存储
我们平常意义的存储可能是存储数据的硬盘,在计算机中,用于数据直接处理的是内存,存储数据的是硬盘,内存相较于硬盘来说速度是快成百上千倍的 , 内存是个不可持久化的,对于内存来说,断电后内存中的数据就会清空 外存也就是硬盘,是持久化的数据,断电后外存的数据不会丢失
三、硬盘
硬盘是一种用于存储数据的计算机存储设备,也被称为硬盘驱动器或硬盘。它由一个或多个旋转的磁盘组成,每个磁盘都有一个磁性表面,可以读写数据。硬盘通常安装在计算机的内部,也可以用作外置设备。硬盘是计算机中最基本的存储设备之一,用于存储操作系统、应用软件、文件和其他数据。
四、文件系统
4.1 文件目录和组织方式
树形组织,是按一定的层级结构来组织的,也就是数据结构中的树,windows中的树是一个N叉树,所以就有了文件夹,目录这样的概念
4.2 文化路径
1.绝对路径 --> Windows是从此电脑这个树根开始进行分层级,所以绝对路径就是从此处开始的,如下图:这个路径就是一个绝对路径,从根目录开始找,一直找到目标文件所在的位置(每经过一个目录就用“\”来分割),所经历的目录就是绝对路径。
2.相对路径 --> 除了绝对路径,我们还可以从任务节点(目录)出发,找到某一个文件(也是找到文件位置所经历的节点),此时所对应的就是相对路径。(从给定的某个目录出发(也叫基准目录/工作目录)所经历的路径)如下图:从Program Files目录开始,找到wab.exe,此时的Program Files就是基准目录(工作目录),Program Files\Windows Mail就是相对路径的表示。
在相对路径中涉及到两个特殊的符号: " . " 和 " .. " ,一个点就代表的是当前目录,两个点就是代表当前目录的上一级目录。
4.3 文件类型
根据存储的数据,我们可以划分文件为文本文件和二进制文件,分别代指保存被字符集编码的文本和按照标准格式保存的非被字符集编码的文件
常见的文本文件:txt,.java / .c,都是文本文件, .class,.exe,jpg,mp3都是二进制文件。
我们可以使用记事本来简单区分二进制文件和文本文件~
当我们用记事本打开下面这个图片
可以发现打开的文件内容根本就看不懂,这种就是二进制文件,他使用原本的编码方式来翻译,但是并不是对应的,没有对应的无法翻译,所以显示出来就是乱码~
打开txt为后缀的文件,我们可以看到右下角记事本显示的是UTF-8 的编码方式,这种就是我们的文本文件
4.4 文件系统操作
Java标准库中提供了File这个类,就是用来操作系统的文件的(例如Java代码操作创建文件删除文件),这个类对象就像是硬盘上的文件的一个抽象表示,在Java中直接操作硬盘上的文件不是很方便,就创建出这样的一个对象,操作这个对象就可以简介的影响硬盘上的文件.
构造File对象和一些File类的一些方法:构造对象的过程中可以使用绝对路径也可以是相对路径进行初始化,这个路径指向的文件可以存在也可以不存在。如下代码: (File类中提供了很多的方法)
import java.io.File;
import java.io.IOException;public class IoDemo1 {public static void main(String[] args) throws IOException {File file = new File("D:/手机照片备份/myphone_72089A8996EA/知乎");System.out.println(file.getParent()); //上一级路径System.out.println(file.getName()); //文件名字System.out.println(file.getPath()); // 相对路径System.out.println(file.getAbsolutePath()); //绝对路径System.out.println(file.getCanonicalPath()); //修饰过的绝对路径}
}
我们还可以操作创建一个文件 代码如下:
import java.io.File;
import java.io.IOException;public class IODemo2 {public static void main(String[] args) throws IOException {File file = new File("D:/手机照片备份/myphone_72089A8996EA/知.txt");System.out.println(file.exists()); //判断是否存在System.out.println(file.isDirectory()); //判断是否是目录System.out.println(file.isFile()); //判断是否是普通文件file.createNewFile(); //在上述位置创建这个文件System.out.println(file.exists()); //判断是否存在System.out.println(file.isDirectory()); //判断是否是目录System.out.println(file.isFile()); //判断是否是普通文件file.delete();System.out.println("执行删除之后");System.out.println(file.isFile());}
}
结果如下:
可以查看 文件类型,看文件是否存在,文件是否为目录,删除文件等等(File类中有很多操作文件内容的方法
相关文章:

总结 IO、存储、硬盘、文件系统相关常识
目录 一、IO是什么? 二、存储 三、硬盘 四、文件系统 4.1 文件目录和组织方式 4.2 文化路径 4.3 文件类型 4.4 文件系统操作 一、IO是什么? IO是英文Input/Output的缩写,指输入/输出。在计算机科学中,IO通常指计算机与外部设备或…...
JavaScript、深入浅出Node.js前端技能汇总
JavaScript 前端技能汇总 Frontend Knowledge Structure 深入浅出Node.js 书籍pdf 《深入浅出Node.js》的相关代码 Javascript&jQuery教程 pdf html & css教程 pdf 高性能JavaScript_中英双语版 pdf 跳坑之js调用另一个js文件中函数 方法1; 在html文件中加入两…...
use gnustep objective-c
first app #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {NSAutoreleasePool *pool [NSAutoreleasePool new];NSLog("first start");[pool drain];return 0; }tech 专注于概念,而不是迷失在语言技术细节中编程语言…...

8.15锁的优化
1.锁升级(锁膨胀) 无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁 偏向锁:不是真的加锁,而是做了一个标记,如果有别的线程来竞争才会真的加锁,如果没有别的线程竞争就不会加锁. 轻量级锁:一个线程占领锁资源后,另一个线程通过自旋的方式反复确认锁是否被是否(这个过程比较…...

单片机复位电路分析
来分析一下这个电路: 首先这里面有电容,所以是一个动态电路。哈哈哈 假设左上角的电压源是5V的代号为VOLT。 可以知道电容capacitor C1左边的电压也是5V,电容中间隔着一个绝缘体,所以不导电, 这个时候电流无法通过…...

公文写作技巧:“三面镜子”写作提纲60例
写作技巧:“三面镜子”写作提纲60例 1. 用好“三面镜子” 推深做实警示教育 勤用“反光镜”以案为鉴。 善用“显微镜”以案明纪。 巧用“聚光镜”以案促改。 2. 年轻干部要用好“三面镜子” 用好“反光镜”,照亮基层中的“暗点” 用好“显微镜”&am…...
useEffect中的函数会执行2次原因
一、useEffect介绍 useEffect是React18的新特性,表示React的生命周期Hooks组件。等价于Claas组件的componentDidMount、componentDidUpdate,useEffect的返回函数等价于componentWillUnmount。(组件卸载、重新挂载都会触发这个函数,…...

更新k8s环境支付系统支付证书
目录 一、背景 二、更新支付系统银行证书 三、备份旧的secret信息 四、更新支付应用的证书信息 五、重启支付系统的应用 六、验证应用实例挂载的秘钥已更新 一、背景 支付系统是基于k8s容器化部署的微服务,支付系统使用的支付证书以及和银行有关的证书都是保存…...
C#的yield
在 C# 中,yield 关键字用于定义迭代器方法(Iterator Methods),并使其返回一个可枚举的序列。通过使用 yield 关键字,可以简化迭代器的实现,使其更加直观和易于理解。 使用 yield 关键字定义的方法被称为迭…...

外卖多门店小程序开源版开发
外卖多门店小程序开源版开发 外卖多门店小程序开源版的开发可以按照以下步骤进行: 确定需求:明确外卖多门店小程序的功能和特点,包括用户注册登录、浏览菜单、下单支付、订单管理等。技术选型:选择适合开发小程序的技术框架&…...
打印图案、
描述 请编写一个程序,打印下面的图案: 输入 无 输出 打印上述图案 输入样例 1 无 输出样例 1 * * * * * * * * * * * * * * * * * * * * * * * * * 代码一(如下):直接输出 #include <iostream> usin…...

# Windows 环境下载 Android 12源码
前言 Android 官网(该方式不适合 Windows 平台):https://source.android.com/source/downloading.html (备注自 2021 年 6 月 22 日起,安卓操作系统不再支持在 Windows 或 MacOS 上进行构建,如果要编译源码推荐先安装…...
【运维面试】Docker技术面试题总结
【运维面试】Docker技术面试题总结 一、Docker的基础概念1.1 什么是Docker?它可以为我们提供哪些便利?1.2 Docker的优点是什么?1.3 Docker的镜像是什么?1.4 Docker的数据卷是什么?1.5 Docker Compose是什么?1.6 Docker Swarm是什么?1.7 Docker Hub是什么?有哪些用途?1…...

CNN成长路:从AlexNet到EfficientNet(01)
一、说明 在 10年的深度学习中,进步是多么迅速!早在 2012 年,Alexnet 在 ImageNet 上的准确率就达到了 63.3% 的 Top-1。现在,我们超过90%的EfficientNet架构和师生训练(teacher-student)。 如果我们在 Ima…...

使用IDEA操作Mysql数据库
idea中自带了关于数据库的连接 首先要确保你的MySQL正在运行中 打开idea找到database( view —> Tool Windows —> database),大家也可以定个快捷键,方便以后日常操作 就是这个样子,然后点加号 然后就可以编写执…...

ChatGPT下架官方检测工具,承认无法鉴别AI内容
去年底,OpenAI 推出的 ChatGPT ,带来了生成式人工智能涌现的热潮。它不仅能够协助完成撰写邮件、视频脚本、文案、翻译、代码等任务,还能通过学习和理解人类的语言来进行对话,并根据聊天的上下文进行互动。 但随之而来的争议也让人…...
Java通过实例调用getClass()方法、类名.class操作、通过运行时类获取其它信息
说明 Java Object类的getClass()函数,是通过对象调用的,是一个实例方法,该方法返回当前对象的运行时类。 通过类名.class可以获得和通过实例调用getClass()函数一样的信息。 获得运行时类以后,可以进一步获取其它信息。 代码示例…...

UE5+Paperzd问题
TopDown的2D游戏,遇到两个问题,第一问题是游戏一开始就会从tilemap上掉下去。第二个问题是没法和图层2上的物体做碰撞。 一、碰撞问题 1、创建的TileSet后,左侧选中一个tile后,一定要点击上边的Add Box,否则创建出来的…...

K8S系列文章之 自动化运维利器 Ansible
Ansible-安装 第一步:安装我们的epel扩展源 yum -y install epel-release 我这里会报/var/run/yum.pid 已被锁定,如果没有直接进行下一步 [rootmaster home]# yum -y install epel-release 已加载插件:fastestmirror, langpacks /var/run/…...

Julia 字典和集合
数组是一种集合,此外 Julia 也有其他类型的集合,比如字典和 set(无序集合列表)。 字典 字典是一种可变容器模型,且可存储任意类型对象。 字典的每个键值 key>value 对用 > 分割,每个键值对之间用逗…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...

【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...