C# 读写超大文件的方法?

kangta198588 2012-01-18 04:31:18
我有一个10G左右的大数据文件,要对其进行处理,然后保存成一个新文件,如何做才能提高效率?

是不是应该分块读取,例如一次读100兆,然后在内存中对其进行相应的处理,然后存盘,再次读取100兆 再处理 继续存到同同一文件中 然后再次……

C#分块读和存用什么代码比较好?

另:我对数据的处理中有移位运算,在分块读写的同时如何保证移位运算的正确性?

...全文
653 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hwbox 2012-01-19
  • 打赏
  • 举报
回复
.net 4.0自代内存文件映射,用流什么都不靠谱,还是要用映射,一些做野鸡文件数据库的常用这种方法。
tigerleq 2012-01-19
  • 打赏
  • 举报
回复
网上 有 很多 压缩 和 解压 的 API 自己 找
怎么 合并 一般 自己 就 可以 解决
tigerleq 2012-01-19
  • 打赏
  • 举报
回复
byte[] 追加 添加
不用 考虑 文件 完整
但是 注意 了 顺序
不然 你要 标记 每段 byte[] 的顺序
弄完 了 在 合成
文件 其实 就是 把 分散 的 合并到 一块

这个 问题
你要 预先 算 出文件 块数 以及 块数 之间 的 关系
看 你怎么实现 了 这就是传说 中的算法 ,先 整体 压缩 扯分 后 在压缩

组合 时 可以有很多方法 比如 a + b + c+d
或 (a + b) +(c + d)
就是 两个算法
  • 打赏
  • 举报
回复
试一下多线程处理
kangta198588 2012-01-19
  • 打赏
  • 举报
回复
内存文件映射怎么弄?有没有相关代码提示?
startstartsvip 2012-01-18
  • 打赏
  • 举报
回复
内存文件影射

bwangel 2012-01-18
  • 打赏
  • 举报
回复
就用一般的FileStream,应该是可以实现分块读取和写入吧。因为它有指针。
你的移位运算是在整字内部移位的话(比如在int32或int64)分块读写应该没有任何问题。因为你不可能把块的边界刚好分在int的中间吧?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧