封装,就是自己想个文件结构,把所需要的数据都保存到一个文件里面去.
需要时,到这一个文件里去读取就是了.
我刚想了一个文件结构你参考一下.
XX XX XX XX
文件标记
XX XX XX XX
文件包含多少文件
XX XX XX XX 文件名长度
XX XX XX XX .....
文件名,长度与前四个字节的文件名长度相符
XX XX XX XX 文件起始字节
XX XX XX XX 文件长度(此节也可以不要.方法是用下一段的起始位置-本文件的起始位置就可以得出)
...........
重复文件头
XX XX XX XX .... 文件数据,每个文件顺序保存下去.
读取时的方法:
先读 4 字节,然后判断 文件标志,如果相符,那么继续
再读 4 字节,这是文件头的长度, 文件头+4 ,就是数据区的开始.
然后读文件头.
先取4 字节,然后再这4字节的长度,读文件名,
再读 文件名
再读 文件开始位置
循环
读够指定的文件名信息后,找到文件开始位置,和下个文件开始位置,计算文件长度,
读指定文件名的数据,查询文件名,然后文件开始位置读指定长度的数据,再进行处理.可以保存为临时文件使用后立即删,也可以直接在内存里转.
保存的方法:
先生成文件头,
文件头,直接写文件,
先写标志
然后写第一个文件名的长度,然后再写入文件名,位置就先写零.并记录下这个位置的数据位置
依次写完文件名后,再把各个文件的内容写进去,每写一个文件前,就计算这个文件相对文件头是哪个位置了,然后重写文件头里的 位置 那个数据.
所有的数据都写完后,文件就算打包完成了.