JavaRush /Java 博客 /Random-ZH /字节。我们从文件中读到什么?
Roman
第 33 级

字节。我们从文件中读到什么?

已在 Random-ZH 群组中发布
一般来说,这是针对初学者的信息。当谈到从文件中读取信息时,问题就出现了:如果文件包含字母,那么为什么我们要以字节的形式从中读取数字?在这种情况下,字节是什么?什么是字节这里已经写得很好了。但是,读完之后,关于将字母转换为数字的机制的问题仍然存在,所以我不得不在互联网上深入挖掘一下。因此,下面写的内容也算是补充。计算机将每个文件存储为由二进制形式的零和一组成的信息。每个文件实际上是彼此跟随的字节的集合。通常,有两种类型的信息文件:文本文件和二进制文件。该文本文件包含一组典型的人类可读字符,我们可以在任何文本编辑器中打开它。二进制文件由我们在日常生活中不习惯操作的字符组成;因此,需要一个特殊的程序来读取它们。文本文件由字母、数字和其他常见字符组成。此类文件的扩展名为 .txt、.py、.csv 等。当我们打开这样的文件时,我们会看到组成单词的常用字符集。尽管实际上该内容并不是以这种形式存储在计算机内部的。它以位的形式存储,即0或1。在各种编码表中,ASCII、UNICODE或每个字符的其他值都以二进制形式定义。因此,如果一个字节可以容纳 256 个字符,则每个字符都有自己的零和一的二进制编码(八个连续写入的零或一给出一个字符)。因此,当文件打开时,文本编辑器会将每个 ASCII 值转换为熟悉的字符,并以其通常的形式显示。例如,数字 65 的 ASCII 码的二进制形式为 1000001,它将在文件中显示为拉丁文(不是西里尔字母。西里尔字母从位置 192 开始)字母“A”。也就是说,在 ASCII 系统中,值为 1000001 的字节对应于拉丁字母“A”的值。文件的每一行都有自己的换行符 – EOL(行尾)。通常这个字符(两个字符)是“\n”(ASCII 中的二进制值:00001010)。读取这样的字符后,程序将其解释为该行的末尾并过渡到下一行。还有其他类似的“功能符号”。二进制文件与文本文件一样,都以二进制形式存储,但它们没有“附加”到对其进行解码的程序,即不存在 ASCII 类型的解密表。基本上,此类文件的内容是图片、音频和视频,而这些文件又是其他文件的压缩版本,例如自执行文件(.exe)。这些文件(二进制)在通常意义上是人类无法读取的,因此尝试使用传统的文本编辑器打开它们将显示一堆无法理解的垃圾。因此,需要生成特殊程序来正确读取此类文件。二进制文件也存储为一系列字节,但在这种情况下,即使更改一位也可能使整个文件不可读。ASCII字符表可以在这里查看。因此,当我们读取文件时,8个字符(1或0)被读入字节变量,然后可以通过记事本等程序将其转换为可读字符。 帮助我弄清楚的 来源。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION