c# 替换原有文件内容

//实现替换原有文件内容
//Seek(0, SeekOrigin.Begin)将指针指向文件的开始,才能从文件的开头,但是此时如果新写入的流长度小于原有文件长度,则会保留原文件多余的信息
using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Write, FileShare.Write))
{
    fileStream.Seek(0, SeekOrigin.Begin);
    using (StreamWriter streamWriter = new StreamWriter(fileStream))
    {
        streamWriter.Write("this is clear file");
        fileStream.Flush();
        streamWriter.Close();
    }
    fileStream.Close();
}

//调用Stream的SetLength这个方法,将长度设为0,可以实现清空原有文件
using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Write, FileShare.Write))
{
    fileStream.SetLength(0);
    using (StreamWriter streamWriter = new StreamWriter(fileStream))
    {
        streamWriter.Write("this is clear file");
        fileStream.Flush();
        streamWriter.Close();
    }
    fileStream.Close();
}

//如果文件已存在则清空,从Truncate打开的文件中读取将引发异常
using (FileStream fileStream = new FileStream(file, FileMode.Truncate, FileAccess.Write, FileShare.Write))
{
    using (StreamWriter streamWriter = new StreamWriter(fileStream))
    {
        streamWriter.Write("this is");
        fileStream.Flush();
        streamWriter.Close();
    }
    fileStream.Close();
}

 

posted @ 2020-09-02 17:39  lcawen  阅读(3055)  评论(0编辑  收藏  举报