[英]How to read an int from a byte[] with an offset and a size of bits in C#
[英]C# How to write one byte at an offset?
我試圖在文件的某個位置寫入單個字節。 我現在正在使用的是:
BinaryWriter bw = new BinaryWriter(File.Open(filename, FileMode.Open));
bw.BaseStream.Seek(0x6354C, SeekOrigin.Begin);
bw.Write(0xB0);
bw.Close();
問題在於BinaryWriter.Write(args)在該位置寫入一個四字節有符號整數。 我只希望在特定位置寫入一個字節。 然后稍后可能是另外兩個字節,我該如何指定要寫入多少個字節?
更改
bw.Write(0xB0);
至
bw.Write((byte)0xB0);
絕對沒有必要僅使用高級BinaryWriter向流中寫入一個簡單的字節-這樣做更高效,更整潔:
Stream outStream = File.Open(filename, FileMode.Open);
outStream.Seek(0x6354C, SeekOrigin.Begin);
outStream.WriteByte(0xb0);
(通常,在將BinaryWriter附加到流之后,您也不應該真正尋求-BinaryWriter應該控制流,並且更改“其背后”的內容有點臟)
您可以轉換為字節:
bw.Write((byte)0xB0);
這將導致調用正確的Write重載版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.