Java - 字节和二进制

use*_*453 5 java

这是一个基本问题.

当我使用字节流将字节写入文件时,我是否创建了二进制文件?

例如:我使用字节流将文本数据写入记事本,当我在HEX查看器中打开记事本时,我看到每个字符的相应十六进制值.但为什么不是二进制值(即0和1).

我还了解到使用dataoutput/input流我读/写二进制文件.

我想我的困惑在于写字节是什么意思,写二进制数据意味着什么.

Joh*_*erg 4

当我使用字节流将字节写入文件时,我是否创建了一个二进制文件?

您按原样写入字节,例如,按它们原来的 10写入。如果这些字节代表字符,那么通常是 no,它只是一个文本文件(毕竟一切都是 1 和 0)。否则,答案就看情况了。术语“二进制文件”具有误导性,但通常指的是可以包含任意数据的文件

当我在十六进制查看器中打开记事本时,我会看到每个字符相应的十六进制值。但为什么不是二进制值

HEX 只是字节的另一种表示形式。下面三个是相等的

10       (Decimal value 10)
0xA      (Hex value 10)
00001010 (Binary value 10)
Run Code Online (Sandbox Code Playgroud)

计算机仅存储二进制值。但编辑者可以选择以其他方式表示(显示)这些内容,例如十六进制十进制形式。如果有足够的字节,它甚至可以表示为图像。

写入字节是什么意思以及写入二进制数据是什么意思

二进制数据是指10,例如000010108 位。8bits使byte.