C#自定义文件类型的问题 文件读取时候如何获得数据的偏移量

本文介绍了一种图片文件的存储格式设计,包括文件头、主体部分的数据结构及读取方法。通过定义特定的数据结构,可以轻松实现图片的读取与定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个很简单嘛~~

文件里的N个图片想读哪个读哪个,具体实现看下面说明

你提到过有个文件头,这个设计是对的,文件头中让他包含上 这个文件里面的图片数目(使用int型的就可以),其他的你还需要什么信息也放在头里。 文件尾我觉得不需要你根据你的情况。

文件主体中就按照你定义的private int x;  private int y;  private int div;  private int filetype;  private long filesize;  private byte[] fileio;  这几个数据依次写入文件,把你要保存的图片都循环着写入。

最后的格式应该是

 

读取的时候:

这里文件头只有一个int的数据,所以打开文件后直接读取sizeof(int)位的数据 保存在一个int型变量中,这样文件头就读出来了。

现在再往下读就是文件体了。

继续读取3个sizeof(int)就是y,div filetype分别被读出来了,下一个sizeof(long) filesize就读出文件长度,然后根据这个filesize去把文件内容读出就可以了,然后继续循环其他的文件。

你想定位到某一个图片的坐标,比如读第3个,那就把前面两个数据占的数据位全都跳过去直接定位到第三个文件的开始处(sizeof(int)*4+sizeof(long))*2+文件1的filesize+文件2的filesize 别忘了文件头的那个sizeof(int) , 这样就定位到了文件3的开始处就是x所在的位置,然后读出你想要的数据来行了。

http://wenwen.soso.com/z/q167177139.htm#

转载于:https://www.cnblogs.com/qkhhwfnh861/archive/2012/02/04/2338084.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值