我一般是编程新手(我对编程概念的理解仍在增长。)。所以这个问题是关于学习的,所以请提供足够的信息让我学习,但不要太多,我不能,谢谢。(我还想了解如何使代码在项目中可重用。)
我正在从事的项目的目标包括:
读取二进制文件。
我知道我需要读取的偏移量以从该文件中查找特定的数据块。
第一个偏移量是前 4 个字节(我的块末尾的偏移量)。
第二个偏移量是从文件末尾开始的 16 个字节。我读了 4 个字节。(以十六进制给出块的大小)。
第三个偏移量是前一个字节后的 4 个字节,读取 4 个字节(十六进制块开始的偏移量)。
通过搜索 ASCII 文本和偏移量来定位块中要修改的部分。
现在我有了我的块的开始偏移量、结束偏移量和大小。这应该允许我将文件中的字节读入字节数组并提前知道数组的大小。
(问题:1. 知道大小重要吗?除了验证。2. 将文件的一部分读入字节数组以更改字节并覆盖文件的那部分是最好的方法吗?)
到目前为止,我已经设法在 MemoryStream 上使用 BinaryReader 从文件中读取偏移量。然后我找到我需要的数据块并将其读入一个字节数组。
我被困在几个方面:
- 二进制读/写的最佳实践是什么?
- 读取数据的最佳存储约定是什么?
- 当我需要修改字节时,我该怎么做。
- 我应该使用 FileStream 吗?