问题是这样的:
条件:
程序初始化时候在c盘下save文件夹下建立好100个文件 为a1,a2,a3,。a100 后缀什么都无所谓。
需求:
程序不定期向这个save文件夹下的某个文件中备份数据(二进制数组);存储的时间无规律 ,每次的数组长度不一定,但是不超过32k,要求是从a1 开始存,在a1中存100次后转到a2存,也就是每个文件下存100次。
要求是向某个文件中比如a1中存时 第一次就正常从位置零开始存,第二次不管要存的数组多长都在从零开始的32k字节后的位置开始存
也就是说每次如果数组不够32k长都留到32k个字节的位置下次就从这个位置开始存
也就是说每个文件比如a1 的大小最后都是 32k x 100=3200k 如何做呢?怎么判断某个时刻要存时候 应该往哪个文件(a1.a2....a100)几里存呢?
条件:
程序初始化时候在c盘下save文件夹下建立好100个文件 为a1,a2,a3,。a100 后缀什么都无所谓。
需求:
程序不定期向这个save文件夹下的某个文件中备份数据(二进制数组);存储的时间无规律 ,每次的数组长度不一定,但是不超过32k,要求是从a1 开始存,在a1中存100次后转到a2存,也就是每个文件下存100次。
要求是向某个文件中比如a1中存时 第一次就正常从位置零开始存,第二次不管要存的数组多长都在从零开始的32k字节后的位置开始存
也就是说每次如果数组不够32k长都留到32k个字节的位置下次就从这个位置开始存
也就是说每个文件比如a1 的大小最后都是 32k x 100=3200k 如何做呢?怎么判断某个时刻要存时候 应该往哪个文件(a1.a2....a100)几里存呢?
1、为每个文件创建存储索引,可以对每次存储进行标记,如:4Bytes的起始位置,4Bytes的长度;
2、每次写文件的时候,从最后进行写起,写完后,修改相应的索引;
3、每次读文件的时候,先读索引,再通过索引去读内容。
既然是二进制数组数据,建议采用Stream.Binary方式读写,再加上索引表,就不用考虑够不够32K的问题了。