文件操作的问题
我有个文本文件,估计比较大,十几二十MB.
在.net 下,我如何删除文件中的任意一行.
比如,删除最后一行.
请问最高效的方法是什么?
(我不想把文本所有内容读入内存!)
帮帮忙,谢谢!
------解决方案--------------------不懂 顶!!!
------解决方案--------------------这个不知道 能行吗?
------解决方案--------------------upupup
------解决方案--------------------只想到一行一行的搞。不知道有没有其他的方法
------解决方案--------------------一行一行的搞,似乎是最经济的办法了
------解决方案--------------------如果你不怕麻烦,可以开缓冲区,用FileSream二进制方式读写,会稍微快一点
但是仍然要全读,查找回车换行的位置,此位置以后的全写
------解决方案--------------------文本文件是顺序存储的,不能随机访问,没有删除其中一部分的说法
------解决方案--------------------建立一个临时文件,500行或更多的读\写\编辑,然后保存到临时文件,完成后删除原文件,临时文件改名
------解决方案--------------------删最后一行的,不用计数了,
循环中改为先写后读,则最后一行没写
using System.IO;
//……
StreamReader sr = new StreamReader(@ "C:\1.txt ");
StreamWriter sw = new StreamWriter(@ "C:\1_temp.txt ");
string str = sr.ReadLine();
while (sr.Peek() != -1)
{
sw.WriteLine(str);//删除第三行,不写
str = sr.ReadLine();
}
sr.Close();
sw.Close();
File.Delete(@ "C:\1.txt ");
File.Move(@ "C:\1_temp.txt ", @ "C:\1.txt ");