我使用bufferbyte将整数1输入到文件中,如.txt文件,
Filechanel fc
(buffer.putInt(1))
fc.write(buffer).
当我用文本编辑器打开它时,它似乎不是1,但它可以被缓冲区正确读取。但是,如果我输入了诸如' a',' b'进入文件,看起来很好。
当我用bytebuffer输入整数时,我无法打开它并用眼睛清楚地看到它。这是自然吗。
答案 0 :(得分:0)
要查看写入文件的整数,必须先将其转换为可读字符。例如,整数20000与字符串“20000”不同。整数在文件中表示为4个字节,其中构成可读字符串的各个字符至少包含5个字符(在本例中)。因此,当您将整数值写入文本文件时,您没有看到的是文本编辑器尝试将构成整数的4个字节解释为4个ascii字符(可能显示也可能不显示)。
答案 1 :(得分:0)
所有计算机文件都只是一个位和字节序列。
人类想出了一种用比特序列来表示人类可读字符的方法。这些被称为字符集或字符编码。一个非常基本的是ASCII。
例如,英文大写字母A
用二进制值
100 0001
十进制值
65
或十六进制值
41
写作时
(buffer.putInt(1))
fc.write(buffer) // assuming you've positioned the ByteBuffer
您将十进制值1
作为二进制文件写入文件。二进制的十进制值1(int
)是
00000000 00000000 00000000 00000001
因为int
是4个字节。
当您使用文本编辑器(或任何编辑器)打开文件时,它将看到4个字节并尝试为您提供文本表示。