日期:2014-05-17  浏览次数:20794 次

StreamWrite只能的文件的结尾添加文本?
StreamWrite只能的文件的结尾添加文本?

看代码:

string path = Environment.CurrentDirectory + @"\1.txt";
using (StreamWriter theStreamWriter = File.AppendText(path))
            {
                theStreamWriter.BaseStream.Seek(-1, SeekOrigin.Begin);//我加这行代码是为了将文件指针移到文件开头之前,以便在文件的开头追加一行。但是这样运行却报错 只能将这一行注释掉
                theStreamWriter.WriteLine(“aaaaaaaaaaaaa”);//将上一行注释掉以后,运行结果就是在原文件的末尾添加了要添加的内容,这是不符合我的愿望的。

             }

用StreamWrite怎样在想要的位置添加内容?   
                

------解决方案--------------------
对文件的操作,不支持插入,只能添加,所谓的插入效果都是重写整个文件来实现的。至于特殊的编辑器实现了插入效果,那个应该是从文件系统底层来实现的,C#无能为力。如果你会了磁盘碎片整理程序的运行原理,就可以做到该效果了。
------解决方案--------------------
将后面的数据读取出来,将文件截短到插入位置,写入新插入的数据,然后写入之前读取的后面的数据。