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