应用编程/文件
什么是文件?
当您使用计算机创建东西时,这些东西存储在称为文件的“信息单元”中。 计算机文件可以是您用文字处理程序编写的文档。 计算机文件也可以是来自数码相机的图形图像,或您用数码画笔创建的图像,音乐片段,视频,或几乎任何东西。 无论是什么,计算机都会将这些信息存储为文件。[1]
文件大小
由于计算机上的数据存储仍然有限,因此文件大小仍然很重要。 文件大小始终以字节为单位。 一个字节是 8 位的序列(记住,一位是数字信息的最小单位,000 或 111)。 一个字节足以表示 256 个数字,因为 28 = 2562。 这也意味着一个字节足以表示 ASCII 编码标准中的单个字母。 更大的文件以更大的字节大小表示。 术语包括千字节(1000 字节)、兆字节(10002 字节)、吉字节(10003 字节)、太字节(10004 字节)、拍字节(10005 字节)。[2]
文件类型
计算机将所有文件存储为二进制数据,即 111 和 000 的长字符串。 但是,文件代表所有不同类型的数据,例如图像、视频、文档、文本文件和电子表格。 甚至应用程序也是文件。 每个文件都有一个类型/种类/格式,这通常反映在其文件扩展名中。[3] Windows(以及大多数其他操作系统)中的每个单独文件也都有一个文件属性,它为特定文件设置一个条件。 例如,您无法向已打开只读属性的文件写入新信息。 文件名只是用户或程序为文件命名的名称,以帮助识别它是什么。 一个图像文件可能名为 kids-lake-2017.jpg。 文件名本身不会影响文件的内容,因此即使视频文件名为 image.mp4,也不意味着它突然变成了图片文件。 任何操作系统中的文件都存储在硬盘、光驱和其他存储设备上。 文件的特定存储和组织方式称为文件系统,它从根目录开始,然后继续到无数子目录或文件夹。[4]
文件操作
包括:[5]
- 创建一个新文件
- 更改文件的访问权限和属性
- 打开文件,使文件内容可供程序使用
- 从文件读取数据
- 将数据写入文件
- 删除文件
- 关闭文件,终止它与程序之间的关联
- 截断文件,将其缩短为文件系统中指定的尺寸,而无需重写任何内容
- 更新现有文件的内容
- 搜索文件中的数据
在计算中,文件系统或文件系统(通常缩写为fs)控制数据如何存储和检索。 如果没有文件系统,放置在存储介质中的数据将是一个庞大的数据体,无法分辨一段数据在哪里结束,下一段数据从哪里开始。 通过将数据分成几部分并给每个部分一个名称,可以轻松地隔离和识别数据。 从纸质数据管理系统的方式命名而来,每组数据称为“文件”。 用于管理数据组及其名称的结构和逻辑规则称为“文件系统”。[6]
文件系统的功能与书籍目录非常相似。 它是计算机用于引用存储设备上数据位置的一种方式。 如果一本书可能引用一个章节和一组页面,那么文件系统对目录和文件夹做同样的事情。 文件名由一个字符序列组成,后面跟着扩展类型,例如myfile.txt。 如果我们继续用书籍来类比,文件名就是章节的标题,目录就是章节号或页面范围。 目录可以结构化,使它们是平面的/线性的或分层的; 意味着它们可以是一个长文件列表,也可以存储在许多不同的文件夹和子文件夹中。
常见的文件系统包括 Windows 平台上的 FAT32 和 NTFS,以及 macOS 上的 APFS。
文本文件(有时拼写为textfile;旧的替代名称是flatfile)是一种计算机文件,其结构为电子文本的线序列。 文本文件作为数据存储在计算机文件系统中。 在 CP/M 和 MS-DOS 等操作系统中,操作系统不跟踪文件大小(以字节为单位),文本文件的结尾通过在文本文件的最后一行之后添加一个或多个特殊字符(称为文件结尾标记)来表示。 在现代操作系统(如 Microsoft Windows 和类 Unix 系统)中,文本文件不包含任何特殊的 EOF 字符,因为这些操作系统上的文件系统会跟踪文件大小(以字节为单位)。 对大多数文本文件来说,需要有行结束符,这取决于操作系统以几种不同的方式完成。 一些具有面向记录的文件系统的操作系统可能不使用换行符,并且主要将文本文件存储为固定或可变长度的记录。
二进制文件是计算机文件中不是文本文件的。术语“二进制文件”通常用作“非文本文件”的含义。许多二进制文件格式包含可以解释为文本的部分;例如,一些包含格式化文本的计算机文档文件,例如较旧的 Microsoft Word 文档文件,包含文档的文本,但也包含以二进制形式的格式信息。
二进制文件包含只有某些应用程序或处理器才能理解的格式信息。虽然人类可以读取文本文件,但二进制文件必须在相应的软件或处理器上运行,人类才能读取它们。例如,只有 Microsoft Word 和某些其他文字处理程序才能解释 Word 文档中的格式信息。可执行文件、编译后的程序、SAS 和 SPSS 系统文件、电子表格、压缩文件和图形(图像)文件都是二进制文件的示例。[9]
StreamReader 和 StreamWriter 工具在 C# 中用于读写文件。声明“using System.IO;“ 必须包含在程序的标题中才能访问这些类,并且 StreamReader 或 StreamWriter 对象使用关键字“new”创建。例如,以下代码将使用名为 sr 的 StreamReader 对象来读取和显示名为“filename.txt”的文件
using System;
using System.IO;
public class MyProgram
{
public static void Main(string[] Args)
{
StreamReader sr = new StreamReader(“filename.txt”);
/*the StreamReader object takes different commands to read or write to the file.*/
while(line = sr.ReadLine() != null)
Console.WriteLine(line);
}
}
可以使用以下代码在 Python 中执行相同的程序。
file = open("filename.txt")
text = file.readlines()
for line in text:
print(line)
file.close()
绝对路径 - 包含根元素和定位文件所需的完整目录列表。[10]
二进制文件 - 计算机文件中不是文本文件的。术语“二进制文件”通常用作“非文本文件”的含义。[11]
目录结构 - 操作系统文件系统及其文件向用户显示的方式。[12]
目录 - 计算机上存储文件的地址。目录在分层文件系统中找到,例如 Linux、MS-DOS、OS/2 和 Unix。[13]
文件系统 - 或者称为文件管理或 FS,文件系统是组织和检索存储介质中的文件的一种方法。[14]
文件实用程序 - 允许用户创建、列出、复制、移动和删除文件,以及更改元数据。[15]
完全限定文件名 - 通过包含文件的路径、名称和扩展名来唯一标识存储在计算机上的文件的一个字符串。[12]
元数据 - 通常与文件系统中的每个文件关联的信息。文件系统可能会存储文件的创建时间、上次访问时间等。[15]
父和子 - 父目录包含“子”文件或子目录。子是包含在父目录中的文件或子目录。[16]
路径 - 计算机、文件、设备或网页所在位置的完整地址或名称。[17]
相对路径 - 需要与其他路径组合才能访问文件。[10]
根 - 文件系统层次结构中的最高级别目录,在类似 UNIX 的操作系统中找到。[18]
文本文件 - 作为电子文本行序列结构的文件,它作为数据存储在计算机文件系统中。[19]
- ↑ https://www.dummies.com/computers/computer-networking/networking-components/understanding-what-a-computer-file-is/
- ↑ https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:computers/xcae6f4a7ff015e7d:computer-files/a/file-storage-sizes-and-types
- ↑ https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:computers/xcae6f4a7ff015e7d:computer-files/a/file-types-kinds-extensions
- ↑ https://www.lifewire.com/what-is-a-file-2625878
- ↑ 计算机文件
- ↑ https://en.wikipedia.org/wiki/File_system
- ↑ https://en.wikipedia.org/wiki/Text_file
- ↑ https://en.wikipedia.org/wiki/Binary_file
- ↑ https://kb.iu.edu/d/afrw
- ↑ a b 甲骨文
- ↑ w:二进制文件
- ↑ a b w:目录结构
- ↑ 计算机希望:目录
- ↑ 计算机希望:文件系统
- ↑ a b w:文件系统
- ↑ w:目录(计算)
- ↑ 计算机希望:路径
- ↑ w:根目录
- ↑ w:文本文件