如何查看文件的内容由BUfferbytes编写

时间:2014-04-11 03:58:27

标签: java bytebuffer

我使用bufferbyte将整数1输入到文件中,如.txt文件,

Filechanel fc
    (buffer.putInt(1))
    fc.write(buffer).

当我用文本编辑器打开它时,它似乎不是1,但它可以被缓冲区正确读取。但是,如果我输入了诸如' a',' b'进入文件,看起来很好。

当我用bytebuffer输入整数时,我无法打开它并用眼睛清楚地看到它。这是自然吗。

2 个答案:

答案 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个字节并尝试为您提供文本表示。