簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM