我正在尝试编写一个遵循预先存在的(和不可变的)文本文件格式的索引文件。
该文件是固定长度的,有 11 个字节的字符串(ASCII 格式),后跟 4 个字节的 long,每行总共 15 个字节。
也许我有点昏暗,但有没有一种简单的方法可以做到这一点?我觉得我需要打开两个流来写一行——一个用于字符串,一个用于字节——但这感觉不对。
有什么提示吗?
您可以使用在/和 s 数组BitConverter
之间进行转换。这样,您将能够写入 11 个字节,后跟 4 个字节,然后再写入 11 个字节,依此类推。int
long
byte
byte[] intBytes = BitConverter.GetBytes(intValue); // returns 4-byte array
转换为字节:BitConverter.GetBytes(int)
.
转换回int
:BitConverter.ToInt32(byte\[\], int)
如果您正在开发跨平台解决方案,请记住文档中的以下注释(感谢uriDium
您的评论):
GetBytes 方法返回的数组中的字节顺序取决于计算机体系结构是 little-endian 还是 big-endian。