读一行写一行,用ReadLine和WriteLine

解决方案 »

  1.   

    Windows文件系统并不支持删除文件前端(NTFS的稀疏文件一定程度上可以做,但得不偿失)。
    因此,如果是大文件,就应该避免前端删除。另外一种方法是在文件系统层次上不进行删除,但定义一个数据结构来标志删除区域。条件就是你自己的程序也要理解这种数据结构。
      

  2.   

    不会有几百G的文件吧在循环体里读一行写一行
    string line = rd.ReadLine().Replace("你要删除的文本","");
    sw.WriteLine(line);不用担心内存不足吧,系统给你程序分配的空间有限制的
      

  3.   

    FileStream是支持随机读写的,你可以在文件的相应的位置填充占位符,或是另用一个索引文件指示哪些位置被删除了,视你的场景来选择当然文件拆分也是个办法。毕竟windows的“磁盘管理系统”味没脱干净,只能靠自己在外围想办法,据我所知不存在你想要的API题外话,既然是几百G就不要ReadToEnd了
      

  4.   

    通常是读取-替换-保存,对于超大文件,有说有分页方法,http://bbs.csdn.net/topics/390052508,没有测试过,你不妨试试。