我正在将文件读入字节数组,我已经在其中插入了一些控制命令,我需要在其他类中解码。但是如何从正在读取的文件的其余内容中识别和分离这些信息。我需要使用一些唯一的字符作为分隔符来标识字节数组中此控制命令的开始和结束。我可以为此目的使用任何独特的角色吗?该特定字符不应出现在任何格式的任何普通二进制文件中。
答案 0 :(得分:2)
没有,如果它是一个二进制文件,则在一般情况下,一个字节可以取0到255之间的任意值。
一种可能的解决方案是将一个特定字节值保留为“转义”字符;假设您为此目的选择'\'
。然后,为了表示分隔符,您可以插入序列"\d"
。当然,要表示实际 '\'
,您还需要划定它;例如"\\"
。
答案 1 :(得分:1)
不,根据定义,没有这样的控制字符。但你可以做的是以下列格式存储数组:[字节数组的长度] [字节数组]。所有你需要做的就是读取整数< - 长度,创建一个长度的新数组并完全读取它。
编辑:
好的,请使用以下格式:
文件名以null结尾,因此你知道那里的分隔符(这是有效的,因为文件名只是ASCII!)。然后你有长度(一个整数/长),然后是字节数组。
上面提到的所有其他方法都是不安全的,如果你使用复杂的分隔符,那么:它不是完美的,占用更多的空间然后使用一个简单的长度变量......
答案 2 :(得分:1)
你可以使用来字符序列(或字节序列),当你解码时,如果你发现它是分隔符的那个序列。