这是一个基本问题。
当我使用字节流将字节写入文件时,我是否在创建二进制文件?
例如:我使用字节流将文本数据写入记事本,当我在HEX查看器中打开记事本时,我看到每个字符的相应十六进制值。但为什么不是二进制值(即0和1)。
我还了解到使用dataoutput / input流我读/写二进制文件。
我想我的困惑在于写字节是什么意思,写二进制数据意味着什么。
答案 0 :(得分:4)
当我使用字节流将字节写入文件时,我是否在创建二进制文件?
您按编写字节,例如, 和零。如果这些字节代表字符,那么通常不,它只是一个文本文件(毕竟一切都是1和0)。否则答案是 取决于 。术语二进制文件具有误导性,但通常引用为a file which can contain arbitrary data。
当我在HEX查看器中打开记事本时,我看到每个字符的相应十六进制值。但为什么不是二进制值
HEX只是字节的另一种表示。以下三个是相等的
10 (Decimal value 10)
0xA (Hex value 10)
00001010 (Binary value 10)
计算机仅存储二进制值。但编辑可以选择以其他方式表示(显示),例如十六进制或十进制表单。给定足够的字节,它甚至可以表示为图像。
写字节是什么意思,写二进制数据是什么意思
Binary data表示 1 和 0 ,例如,00001010
表示8位。 8 bits
成为byte
。
答案 1 :(得分:1)
您使用的应用程序可能会导致混淆。如果你在HEX查看器中打开一些东西,它应该用HEX表示而不是BIN。
答案 2 :(得分:1)
" text"的概念和"二进制"档案主要是对你和我的理解,因为"消费者"的文件。严格地说,每个文件由1&0和0组成,因此在该词的最真实意义上都是二进制文件。十六进制表示,特定字符集的编码,图像文件格式。您可以旋转一个包含100个随机字节的数组,将其吐出到文件中,它就像"二进制"和任何其他文件一样。它的全部内容是如何解释字节的差异。
这是一个例子。在久经考验的ACII中,大写" A"编码为十进制65.您可以在十六进制查看器中将其表示为0x41(十六进制),作为" A"一个编辑器,但最终,你把那个字节写入一个文件,它只是一个字节转换为一系列的8位,01000001.
答案 3 :(得分:1)
通常,您使用Writer创建文本文件,使用其他方式(Streams,Channels等)创建二进制文件。但是,如果您的“二进制”文件包含文本而且只包含文本,则无论如何都是文本文件。
关于十六进制格式,这只是查看字节值的紧凑(首选)方式。