C#对二进制文件的特定位置进行读写小结
虽然网络上关于“C#对二进制文件进行读写”的文章多如牛毛,但具体到自己要处理的问题时,难免让人产生“书到用时方恨少”和“纸上读来终觉浅”的感觉。我现在感觉要真正解决自己的问题,最终还是要靠自己下功夫。
实例一:将数值写入文件的特定位置
String saveFile = "C:\\Users\\ufo\\Desktop\\rich4\\SAVE2.DAT";// 要保存的文件
FileStream writeStream = File.OpenWrite(saveFile);// 以写的方式打开
;// 要写入的数值
String strAll = value.ToString("x8");// 转成16进制
// 下面是特定处理,个性化需求,不完善勿怪
String strA = strAll.Substring(strAll.Length - , );
String strB = strAll.Substring(strAll.Length - , );
String strC = strAll.Substring(strAll.Length - , );
];
newData[] = Convert.ToByte(strA, );
newData[] = Convert.ToByte(strB, );
newData[] = Convert.ToByte(strC, );
writeStream.Seek(, SeekOrigin.Begin);// 定位,在第44个字节处写入
writeStream.Write(newData, , 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(, SeekOrigin.Begin);// 定位到第44个字节
];// 要读取的内容会放到这个数组里
fs.Read(datas, , datas.Length);// 开始读取,读取的内容放到datas数组里,0是从第一个开始放,datas.length是最多允许放多少个
// 下面是个性化处理,不完善勿怪
];
String strA = Convert.ToString(a, );
if (strA.Equals(""))
{
strA = ";
}
)
{
strA = " + strA;
}
a = datas[];
String strB = Convert.ToString(a, );
if (strB.Equals(""))
{
strB = ";
}
)
{
strB = " + strB;
}
a = datas[];
String strC = Convert.ToString(a, );
if (strC.Equals(""))
{
strC = ";
}
)
{
strC = " + strC;
}
String strD = strA + strB + strC;
);// 十六进制转十进制
System.Console.WriteLine("value=" + point);// 这里输出value=123456,也就是上面写入程序写进去的值
2017年6月13日11:43:46
C#对二进制文件的特定位置进行读写小结的更多相关文章
- 使用iframe调用指定网页的特定位置(显示目标网页某区域的我想要的内容)
使用iframe调用指定网页的特定位置(显示目标网页某区域的我想要的内容) 有些时候我们并不需要显示iframe标签属性src指定的目标网页的所有内容,往往只需要显示某一特定区域.现有两种实现方法提供 ...
- .NET Core中向已存在文件的特定位置写入数据
本例使用.NET Core向一个文本文件中的特定位置写入数据,来模拟文件上传中的断点续传是如何在服务器端实现的. 新建一个.NET Core控制台项目FileContinueToWrite,其Prog ...
- 【HTML】网页中如何让DIV在网页滚动到特定位置时出现
用js或者jquery比较好实现.但你要知道,滚动到哪个特定位置,例如滚动到一个标题h3那显示这个div,那么可以用jquery算这个h3距离网页顶部的距离:$("h3").off ...
- 【转载】C#通过InsertAt方法在DataTable特定位置插入一条数据
在C#中的Datatable数据变量的操作过程中,可以通过DataTable变量的Rows属性的InsertAt方法往DataTable的指定位置行数位置插入一个新行数据,即往DataTable表格指 ...
- H5小技巧之——巧用<a>标签锚链接(#锚点链接 #页面特定位置 #DOM定位 #hash路由中使用锚链接)
#作者:矩阵鱼--代码中游泳的咸鱼 前端开发中,常遇到定位到页面某特定位置的需求,JavaScript提供的el.scrollIntoView() 和 el.scrollIntoViewIfNeede ...
- iOS的高德地图标注特定位置
在开发时有时候遇到项目里面需要展示公司的位置,这时如果导入百度地图什么的就太浪费资源,而且还占内存 这时只要调用自动高德地图的就行了 自己写一个控制器,导入框架 现在导入系统框架只要多打次就能出来了, ...
- C++读取二进制文件(某特定格式)
该格式也不复杂,就是一个二进制文件,格式为:8个通道,每个通道2字节,都为整数,最后两个通道都是0x03FF == 1023d,文件中中若干个8通道. 有个小细节就是:下面代码中 infile.rea ...
- sed 技巧一例:特定位置插入
通过一例子熟悉 sed 的运用 下面命令是在修改 ~/fs/install/nzos.conf 文件, 并在 env 第一次出现的地方再添加一行 env LXC_EXTRA_PORT=5556 sed ...
- iOS UITableView获取特定位置的cell
代码地址如下:http://www.demodashi.com/demo/13307.html 一.tableView双级联动 以上两种效果比较类似,实现的关键在于都是需要获得在滑动过程中滑动到tab ...
随机推荐
- PAT Basic 1021
1021 个位数统计 给定一个k位整数N = d~k-1~*10^k-1^ + ... + d~1~*10^1^ + d~0~ (0<=d~i~<=9, i=0,...,k-1, d~k- ...
- Spring核心技术(十一)——基于Java的容器配置(一)
基本概念: @Bean和@Configuration Spring中新的基于Java的配置的核心就是支持@Configuration注解的类以及@Bean注解的方法. @Bean注解用来表示一个方法会 ...
- python基础学习笔记——列表技巧
列表: 循环删除列表中的每⼀个元素 li = [, , , ] for e in li: li.remove(e) print(li) 结果: [, ] 分析原因: for的运⾏过程. 会有⼀个指针来 ...
- find_element——By 元素定位
• find_element(By.ID,”loginName”)• find_element(By.NAME,”SubjectName”)• find_element(By.CLASS_NAME,” ...
- Clickomania(区间DP)
描述 Clickomania is a puzzle in which one starts with a rectangular grid of cells of different colours ...
- iOS转场动画初探
一般我们就用两种转场push和present present /** 1.设置代理 - (instancetype)init { self = [super init]; if (self) { se ...
- BZOJ 2693 jzptab ——莫比乌斯反演
同BZOJ 2154 但是需要优化 $ans=\sum_{d<=n}d*\sum_{i<=\lfloor n/d \rfloor} i^2 *\mu(i)* Sum(\lfloor \fr ...
- MyEclipse6.5增加对Tomcat7的支持
MyEclipse6.5增加对Tomcat7的支持 最近在研究Servlet3.0,它是JavaEE6.0规范中的一部分 而Servlet3.0对服务器是有要求的,比如Tomcat7+(而Tomcat ...
- CodeForces 731C Socks
http://codeforces.com/problemset/problem/731/C 并查集+贪心 将要求颜色相同的袜子序号放入一个集合中 贪心:然后统计这个集合中出现次数最多但颜色 可以得到 ...
- EC++学习笔记(六) 继承和面向对象设计
条款32:确定你的 public 继承塑模出 is-a 关系 public inheritance 意味着 is-a 关系class Derived 以 public 形式继承 class Base, ...