C#自定义文件类型的问题 文件读取时候如何获得数据的偏移量
这个很简单嘛~~
文件里的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所在的位置,然后读出你想要的数据来行了。