IO、文件系统相关常识

一.IO和IO流

IO(输入/输出)是一个广泛的概念,通常指代计算机与外部设备(如键盘、鼠标、打印机、显示器等)或其他计算机组件(如磁盘、网络等)之间的数据交换过程。IO 操作可以涉及到多种类型的数据传输和设备。

IO 流(Input/Output Stream)是实现 IO 操作的一种方式,它是一种以顺序、连续的方式处理数据的抽象概念。在编程领域,IO 流通常用于处理文件读写、网络通信和内存操作等任务

1.1IO(输入/输出)

  IO 是计算机与外部设备(如磁盘、键盘、显示器等)之间数据传输的过程。IO 操作通常涉及读取和写入数据。在计算机系统中,IO 操作可能涉及内存与外部设备之间的数据交换,也可能涉及 CPU 与外部设备之间的数据交换。IO 可分为同步 IO 和异步 IO。同步 IO 在操作完成前会阻塞执行线程,而异步 IO 允许执行线程在操作完成前继续执行其他任务。

1.2.I/O 流(输入/输出流)

是 Java 编程语言中用于处理输入和输出数据的核心概念。流是顺序访问数据的抽象概念,它表示数据从源到目的地的传输过程。在 Java 中,I/O 流是通过使用 java.io 包中的类和接口来实现的。

I/O 流可以分为两大类:输入流和输出流。输入流用于从数据源(如文件、网络连接、内存缓冲区等)读取数据,而输出流用于将数据写入目的地(如文件、网络连接、内存缓冲区等)。流的基本操作包括读取、写入和关闭。

 1.3 I/O 流类型

I/O 流在 Java 中具有层次化的结构,主要分为以下四种类型

字节流:字节流用于处理原始二进制数据,以字节为单位进行读写操作。字节流的基类是 InputStream(输入流)和 OutputStream(输出流)。字节流通常用于处理非文本数据,如图片、音频和视频文件。

字符流:字符流用于处理文本数据,以字符为单位进行读写操作。字符流的基类是 Reader(输入流)和 Writer(输出流)。字符流通常用于处理文本文件,它可以自动处理字符编码和解码,从而简化文本操作。

缓冲流:缓冲流在内部维护一个缓冲区,通过减少对底层数据源或目的地的直接访问次数,从而提高 I/O 操作的性能。缓冲流的主要类是 BufferedInputStream、BufferedOutputStream、BufferedReader 和 BufferedWriter。

数据流:数据流用于处理 Java 基本数据类型和字符串的 I/O 操作。数据流可以方便地将 Java 数据类型和字符串读写到流中,同时保留其原始格式和类型。数据流的主要类是 DataInputStream 和 DataOutputStream。

I/O 流的操作通常需要处理异常(如 IOException)。在操作完成后,应始终关闭流以释放系统资源,可以使用 try-with-resources 语句自动关闭流。

二.认识文件

2.1 概念

文件是计算机系统中用于存储和组织数据的基本单位。以下是关于文件的一些概念的详细描述:
1.文件类型:文件可以包含各种类型的数据,如文本、图片、音频、视频和可执行程序等。文件类型通常通过文件扩展名(例如 .txt、.jpg、.mp3 等)表示,以便操作系统和应用程序识别并正确处理文件。

2.文件路径:文件路径是计算机系统中用于定位文件的唯一标识。文件路径可以是绝对路径或相对路径。绝对路径表示文件在文件系统中的完整位置,从根目录开始。相对路径表示文件相对于另一个文件或目录的位置。

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

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

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

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

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

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

2.2 相对路径和绝对路径

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

  • 相对路径中使用的一些特殊符号包括:

     1) '.' 表示当前目录。

              2) '..' 表示上一级目录。

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

       总结一下,相对路径和绝对路径是文件系统中用于定位和访问文件的两种路径类型。相对路径表示文件相对于当前工作目录或其他参考目录的位置,具有更好的灵活性。绝对路径表示文件在文件系统中的完整位置,提供了确切的文件位置信息。

(3)文本文件和非文本文件
计算机中,根据文件内容的表示方式和组织结构,文件可以分为文本文件和非文本文件。以下是关于文本文件和非文本文件的详细描述:

文本文件:文本文件包含人类可读的文本字符,通常使用某种字符编码(如 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 等)

文本文件包含人类可读的文本字符,可以用文本编辑器打开和编辑。非文本文件包含特定格式的数据,需要使用特定的应用程序或库来解析和处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值