C#对二进制文件的特定位置进行读写小结
2017-06-13 11:30
253 查看
虽然网络上关于“C#对二进制文件进行读写”的文章多如牛毛,但具体到自己要处理的问题时,难免让人产生“书到用时方恨少”和“纸上读来终觉浅”的感觉。我现在感觉要真正解决自己的问题,最终还是要靠自己下功夫。
实例一:将数值写入文件的特定位置
实例二:读取文件的特定位置,得到数值
2017年6月13日11:43:46
实例一:将数值写入文件的特定位置
String saveFile = "C:\\Users\\ufo\\Desktop\\rich4\\SAVE2.DAT";// 要保存的文件 FileStream writeStream = File.OpenWrite(saveFile);// 以写的方式打开 int value = 123456;// 要写入的数值 String strAll = value.ToString("x8");// 转成16进制 // 下面是特定处理,个性化需求,不完善勿怪 String strA = strAll.Substring(strAll.Length - 2, 2); String strB = strAll.Substring(strAll.Length - 4, 2); String strC = strAll.Substring(strAll.Length - 6, 2); byte[] newData = new byte[3]; newData[0] = Convert.ToByte(strA, 16); newData[1] = Convert.ToByte(strB, 16); newData[2] = Convert.ToByte(strC, 16); writeStream.Seek(44, SeekOrigin.Begin);// 定位,在第44个字节处写入 writeStream.Write(newData, 0, newData.Length);// 将准备好的数组写入文件。newData是包含要写入文件的byte类型数组;0是数组中的从零开始的字节偏移量,从此处开始将字节复制到该流;newData.Length是要写入的字节数。这句话的意思是从44个字节开始把数组内容从头到尾写进去,修改下参数如writeStream.Write(newData, 1, newData.Length-1)是把数组从第二个到倒数第一个写进去
writeStream.Close();// 关闭文件
实例二:读取文件的特定位置,得到数值
String openFile = "C:\\Users\\ufo\\Desktop\\rich4\\SAVE2.DAT";// 要读取的文件 FileStream fs = new FileStream(openFile, FileMode.Open);// 读取方式打开,得到流 fs.Seek(44, SeekOrigin.Begin);// 定位到第44个字节 byte[] datas = new byte[3];// 要读取的内容会放到这个数组里 fs.Read(datas, 0, datas.Length);// 开始读取,读取的内容放到datas数组里,0是从第一个开始放,datas.length是最多允许放多少个 // 下面是个性化处理,不完善勿怪 int a = datas[2]; String strA = Convert.ToString(a, 16); if (strA.Equals("")) { strA = "00"; } if (strA.Length == 1) { strA = "0" + strA; } a = datas[1]; String strB = Convert.ToString(a, 16); if (strB.Equals("")) { strB = "00"; } if (strB.Length == 1) { strB = "0" + strB; } a = datas[0]; String strC = Convert.ToString(a, 16); if (strC.Equals("")) { strC = "00"; } if (strC.Length == 1) { strC = "0" + strC; } String strD = strA + strB + strC; int point = Convert.ToInt32(strD, 16);// 十六进制转十进制 System.Console.WriteLine("value=" + point);// 这里输出value=123456,也就是上面写入程序写进去的值
2017年6月13日11:43:46
相关文章推荐
- C# 向二进制文件进行读写操作
- C# 向二进制文件进行读写的操作方法
- C# 向二进制文件进行读写操作
- C# 向二进制文件进行读写操作
- c# 创建指定大小的空字符填充的文本文件 在指定位置读写相关内容
- C#中对INI文件进行读写操作
- C#中如何删除字符串中任意位置的特定的字符
- C#读写二进制文件
- 使用MFC的CFile文件类和CArchive串行化类进行二进制文件读写操作演示案例
- C#对Excel报表进行操作(读写和基本操作)
- C语言进行二进制文件的读写操作(fopen,fwrite,fread)
- 一种C#读写二进制文件的通用方法<转>
- C#使用HttpWebRequest进行HTTP请求发送和接收的一些小结。(新增修复.NET4.0以下关于cookie的bug)
- p67 把特定位置的位变成0,进行与运算
- C#读写文本文件小结
- C# 常用文件操作 文本文件 二进制文件 读写操作
- c# 创建指定大小的空字符填充的文本文件 在指定位置读写相关内容
- C# 类用XmlSerializer进行序列化和反序列化进行文件读写的一个简单例子
- C#进行INI文件的读写操作
- c#中进行读写配置文件的方法