当前位置:  开发笔记 > 编程语言 > 正文

从文件中删除一行

如何解决《从文件中删除一行》经验,为你挑选了1个好方法。

我有一项任务是从文件中删除一些行.经过一些研究后我得出了这个解决方案:

using (StreamReader reader = new StreamReader (path)
{
   using (StreamWriter writer = new StreamWriter(path2))
   {    
      LineIndex=0;
      while ((line = reader.ReadLine()) != null)
      {
         LineIndex++;                                
         if (LineIndex > 6)
            break;
      }

      while ((line = reader.ReadLine()) != null)
      {
         writer.WriteLine(line);
      }
      reader.Close();
      writer.Close();

      if (File.Exists(path2))
      {
         File.Delete(path);
         File.Move(path2, path);
      }
   }
}

此代码应该读取路径文件,写入除path2文件中的前6行之外的所有行,然后通过覆盖其先前的内容将path2文件的内容移动到路径文件.但我得到的是路径文件从其以前的所有数据中删除,因此它变为空.有解决方案吗?



1> bytecode77..:

更简单,更简单:

File.WriteAllLines(path2, File.ReadAllLines(path).Skip(6).ToArray())

这可以使用Linq Skip,它返回除前6个之外的所有行的数组.另请注意,这适用于较小的文件,因为您将整个文件加载到内存中.


这很棒......直到文件很大并且一次读取所有行成为一个坏主意.
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有