JavaEE初阶 - IO、存储、硬盘、文件系统相关常识 (二)

🎇🎉🎉🎉点进来你就是我的人了
博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!
人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习!
欢迎志同道合的朋友一起加油喔 💪💪💪
目标梦想:进大厂,立志成为一个牛掰的Java程序猿,虽然现在还是一个🐒嘿嘿
谢谢你这么帅气美丽还给我点赞!比个心

目录

一、IO简介

IO 即 Input/Output,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。
IO 操作通常涉及读取和写入数据。在计算机系统中,IO 操作可能涉及内存与外部设备之间的数据交换,也可能涉及 CPU 与外部设备之间的数据交换。IO 可分为同步 IO 和异步 IO。同步 IO 在操作完成前会阻塞执行线程,而异步 IO 允许执行线程在操作完成前继续执行其他任务。

1.IO流

数据传输过程类似于水流,因此称为 IO 流。
在 Java 中,I/O 流是通过使用 java.io 包中的类和接口来实现的。
IO 流在 Java 中分为输入流和输出流,而根据数据的处理方式又分为字节流和字符流。

Java IO 流的 40 多个类都是从如下 4 个抽象类基类中派生出来的。

  • InputStream/Reader: 所有的输入流的基类,前者是字节输入流,后者是字符输入流。
  • OutputStream/Writer: 所有输出流的基类,前者是字节输出流,后者是字符输出流。

I/O 流在 Java 中具有层次化的结构,主要分为以下四种类型:
字节流:字节流用于处理原始二进制数据,以字节为单位进行读写操作。字节流的基类是 InputStream(输入流)和 OutputStream(输出流)。字节流通常用于处理非文本数据,如图片、音频和视频文件。
字符流:字符流用于处理文本数据,以字符为单位进行读写操作。字符流的基类是 Reader(输入流)和 Writer(输出流)。字符流通常用于处理文本文件,它可以自动处理字符编码和解码,从而简化文本操作。
缓冲流:缓冲流在内部维护一个缓冲区,通过减少对底层数据源或目的地的直接访问次数,从而提高 I/O 操作的性能。缓冲流的主要类是 BufferedInputStream、BufferedOutputStream、BufferedReader 和 BufferedWriter。
数据流:数据流用于处理 Java 基本数据类型和字符串的 I/O 操作。数据流可以方便地将 Java 数据类型和字符串读写到流中,同时保留其原始格式和类型。数据流的主要类是 DataInputStream 和 DataOutputStream。
I/O 流的操作通常需要处理异常(如 IOException)。在操作完成后,应始终关闭流以释放系统资源。在 Java 7 及更高版本中,可以使用try-with-resources 语句自动关闭流。
总之,I/O 流是 Java 中处理输入和输出数据的核心概念。通过使用不同类型的流(如字节流、字符流、缓冲流和数据流),可以灵活地处理各种数据源和目的地之间的数据传输。了解 I/O 流及其相关类和接口有助于编写高效、可扩展的 Java 程序。

二、存储

存储是计算机系统中用于保存和访问数据的组件。存储可以分为以下两类:
主存储(内存):主存储是计算机系统的临时存储区域,用于存储正在执行的程序和相关数据。主存储通常由随机访问存储器(RAM)组成,具有较高的数据访问速度。RAM 可以分为静态 RAM(SRAM)和动态 RAM(DRAM)。SRAM 速度较快但成本较高,而 DRAM 速度较慢但成本较低。当计算机断电时,主存储中的数据会丢失。
辅助存储(外部存储):辅助存储是计算机系统的永久存储区域,用于长期保存数据和程序。辅助存储设备包括硬盘驱动器(HDD)、固态硬盘(SSD)、光盘、闪存盘等。辅助存储设备的访问速度相对较慢,但它们在断电后仍能保留数据。

三、硬盘

  1. 硬盘接口的分类:

    硬盘接口通常分为五种类型:SATA接口硬盘、IDE接口硬盘、SCSI接口硬盘、光纤通道硬盘、SAS接口硬盘。

    IDE接口硬盘多用于家用产品中,也部分应用于服务器,SCSI接口的硬盘则主要应用于服务器市场,而光纤通道只在高端服务器上,价格昂贵。SATA是目前比较流行的的硬盘接口类型,目前市场上最普及的接口类型。

  2. 硬盘的分类:

    硬盘分为固态硬盘(SSD 盘)、机械硬盘(HDD)、混合硬盘(HHD)三种。SSD采用闪存颗粒来存储,HDD采用磁性碟片来存储,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。绝大多数硬盘都是固定硬盘,被永久性地密封固定在硬盘驱动器中。

四、文件系统

文件是计算机系统中用于存储和组织数据的基本单位。以下是关于文件的一些概念的详细描述:

1、文件类型:

文件类型是标识文件所含数据类型和格式的一种方式。常见的文件类型包括文本文件(如.txt和.docx),用于存储文字;图片文件(如.jpg和.png),用于存储图像;音频文件(如.mp3),用于存储音频内容;视频文件(如.mp4),用于存储视频内容;以及可执行文件(如.exe),用于运行软件或应用程序。

2、文件路径:

文件路径是指文件在计算机或存储设备上的具体位置,通常由驱动器号、目录结构和文件名组成。了解文件路径的基本知识对于有效地管理文件、执行脚本和进行故障排除是非常重要的。

3、文件属性:

文件具有多种属性,如文件名、大小、创建时间、修改时间和访问权限等。操作系统和文件系统通过这些属性来管理和跟踪文件。

①名称:文件名称唯一,以容易读取的形式保存。

②标识符:标识文件系统内文件的唯一标签,通常为数字,它是对人不可读的一种内部名称。

③类型:被支持不同类型的文件系统所使用。

④位置:指向设备和设备上文件的指针。

⑤大小:文件当前大小(用字节、字或块表示),也可包含文件允许的最大值。

⑥保护:对文件进行保护的访问控制信息。

⑦时间、日期和用户标识:文件创建、上次修改和上次访问的相关信息,用于保护、 安全和跟踪文件的使用。

所有文件的信息都保存在目录结构中,而目录结构也保存在外存上。文件信息当需要时再调入内存。通常,目录条目包括文件名称及其唯一标识符,而标识符定位其他属性的信息。

4、访问权限:

为了保护文件的安全和完整性,操作系统通常会对文件实施访问权限控制。文件的访问权限可以分为读取、写入和执行等级别。不同的用户和用户组可能具有不同的访问权限。

5、文件操作:

操作系统和应用程序通过文件操作来读取、修改和管理文件。常见的文件操作包括创建、打开、关闭、读取、写入、重命名、删除、复制和移动等。这些操作通常通过操作系统提供的文件操作接口(如系统调用或库函数)实现。

6、文件格式:

文件格式是文件中数据的组织和表示方式。不同类型的文件可能采用不同的文件格式。例如,文本文件可以采用 ASCII 或 Unicode 编码,图片文件可以采用 JPEG、PNG 或 GIF 格式,音频文件可以采用 MP3 或 WAV 格式等。了解文件格式有助于更好地处理和转换文件数据。

7、文件编码:

文件编码是将字符数据转换为二进制数据的过程。常见的文件编码包括 ASCII、UTF- 8、UTF-16 和 UTF-32 等。选择正确的文件编码对于保证文件内容的正确显示和处理至关重要。

8、文件压缩:

文件压缩是一种减小文件大小的方法,以节省存储空间和加快文件传输速度。文件压缩可以采用无损压缩或有损压缩方法。无损压缩保留了原始数据的完整性,而有损压缩可能会丢失部分数据以换取更高的压缩率。常见的文件压缩格式包括 ZIP、RAR 和 7z 等。

9、相对路径:

相对路径是基于当前工作目录或其他参考目录的文件路径。它表示文件与当前目录或参考目录之间的相对位置。相对路径通常更短,且在移动文件或目录时更具灵活性。然而,要正确解析相对路径,必须知道相对于哪个目录。
. 表示当前目录。
两个.表示上一级目录。

10、绝对路径:

绝对路径是文件在文件系统中的完整位置,从根目录开始。绝对路径提供了文件的确切位置,不依赖于当前工作目录或其他参考目录。然而,绝对路径通常较长,且在移动文件或目录时可能需要更新。

补充:Windows/Linux小知识点

Windows:D:\Soft\QQ\Plugin

Linux: D:/Soft/QQ/Plugin

注意: Windows各个文件之间分隔符为:" \ ";Linux各个文件之间分割符为:" / "

补充:IDEA默认的当前路径是?

工程Project的根就是IDEA的默认当前路径

11、文本文件和非文本文件

计算机中,根据文件内容的表示方式和组织结构,文件可以分为文本文件和非文本文件。以下是关于文本文件和非文本文件的详细描述:
文本文件:文本文件包含人类可读的文本字符,通常使用某种字符编码(如 ASCII、UTF-8、UTF-16 等)将字符数据转换为二进制数据。文本文件可以用普通的文本编辑器(如 Notepad、TextEdit 或 Vim 等)打开和编辑。文本文件通常具有换行符(如\n或\r\n)来分隔文件中的行。
文本文件的示例包括:
纯文本文件(如 .txt、.log、.md 等)

代码文件(如 .c、.java、.py 等)

配置文件(如 .ini、.conf 等)

标记语言文件(如 .html、.xml、.json 等)

非文本文件:非文本文件包含不是人类可读的文本字符的数据,而是采用特定的文件格式来组织和表示数据。非文本文件不能用普通文本编辑器打开,需要使用特定的应用程序或库来解析和处理。
非文本文件的示例包括:
图像文件(如 .jpg、.png、.gif 等)

音频文件(如 .mp3、.wav、.ogg 等)

视频文件(如 .mp4、.avi、.mkv 等)

可执行文件(如 .exe、.dll、.so 等)

压缩文件(如 .zip、.rar、.7z 等)

文档文件(如 .pdf、.docx、.pptx 等)

相关推荐
paterWang3 分钟前
小程序-基于java+SpringBoot+Vue的美食推荐系统设计与实现
java·spring boot·小程序
《源码好优多》4 分钟前
基于Java Springboot餐饮美食分享平台
java·spring boot·美食
说书客啊7 分钟前
计算机毕业设计 | SpringBoot+vue美食推荐商城 食品零食购物平台(附源码+论文)
java·spring boot·node.js·vue·毕业设计·课程设计·美食
小宋102116 分钟前
实现java执行kettle并传参数
java·开发语言·etl
贝克街的天才39 分钟前
据说在代码里拼接查询条件不够优雅?Magic-1.0.2 发布
java·后端·开源
神仙别闹1 小时前
基于Java实现的(GUI)华容道小游戏
java·gui
JosieBook1 小时前
【面试题】2025年百度校招Java后端面试题
java·开发语言·网络·百度
请你打开电视看看1 小时前
观察者模式
java·观察者模式·设计模式
Mr.朱鹏1 小时前
设计模式之策略模式-工作实战总结与实现
java·spring·设计模式·kafka·maven·策略模式·springbbot
计算机毕设指导61 小时前
基于SpringBoot共享汽车管理系统【附源码】
java·spring boot·后端·mysql·spring·汽车·intellij idea