当前位置:编程学习 > C#/ASP.NET >>

求助c#16进制写入文件问题

本来要对一个2进制文件进行改写。
计划采用如下方法。
byte[] buffer =new byte[139]
FileStream.Seek(offset, SeekOrigin.Begin);  //文件流定位
FileStream.Write(buffer, 0, 140); //将buffer数组 内数据写入文件 

现在头痛的是 buffer赋值的问题。。
这个buffer 为16进制的  类似下面这样 共有100多个字节。
2E00310032003500252003100380036002F0073006500620075006B006100

请问有什么好办法能解决这个问题。
或是其它方法 重写文件!

感谢赐教,不胜感激!! --------------------编程问答-------------------- 问题不明确,你是要写入文本内容,类似FF0E12FE这样的? --------------------编程问答--------------------
            System.IO.StreamWriter sw=new System.IO.StreamWriter("d:\\1.txt",false);
            for (int i = 0; i < buf.Length; i++)
            {
                sw.Write( buf[i].ToString("X2"));
            }
            sw.Close();
            sw.Dispose();
--------------------编程问答--------------------
引用 1 楼  的回复:
问题不明确,你是要写入文本内容,类似FF0E12FE这样的?

不是写入文本 我要写入16进制文件也就是可执行文件

这个buffer 为16进制的 类似下面这样 共有100多个字节。
2E00310032003500250003100380036002F0073006500620075006B006100
我想实现的效果是
buffer[0]=0x2E
buffer[1]=0x00
buffer[2]=0x31
buffer[3]=0x00
buffer[4]=0x32
buffer[5]=0x00
以此类推


再举个例子 有一个可执行文件 从某个offset 开始的16进制如下
22003f0036003700282003200310036002F0073006400620075006A006F00

然后我用新的16进制值改写文件 就假设是下面的16进制值改写
2E00310032003500252003100380036002F0073006500620075006B006100
有100多个字节  一个一个赋值 累死了!
--------------------编程问答-------------------- 我晕,你还是没弄明白byte是什么东西,什么十六进制,二进制,十进制

你先百度byte int char uint uchar是什么意思,内存分布是什么样子就不会有这个问题了。

没有所谓的十六进制文件
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,