从文件中删除一个条目(c# StreamWriter类)

本文关键字:StreamWriter 一个 文件 删除 | 更新日期: 2023-09-27 18:18:26

我有一个包含几个文本条目的文件,比如

一个
两个

现在,我需要删除其中一个条目,比如"two"。我正在使用StreamReader和StreamWriter类。为了删除,首先,我使用StreamReader类将文件的内容读取为字符串,将读取字符串中的"two'r'n"替换为",然后,我使用StreamWriter类将该字符串写入文件。但是,由于新写入的字符串(即。"one'r'nthree'r'n"小于原始字符串,即"one'r'ntwo'r'nthree'r'n",前几个字符被覆盖,而靠近末尾的字符仍然留在那里,从而产生"one'r'nthree'r'nree'r'n"。似乎是一个简单的问题,但它却把我难住了。什么好主意吗?

user变量中包含要删除的条目。

string all = "";
using (IsolatedStorageFileStream isoStream = store.OpenFile("user_list", FileMode.Open))
{
    using (StreamReader sr = new StreamReader(isoStream))
    {
        all = sr.ReadToEnd();
        all = all.Replace(user + "'r'n", "");
    }
}
using (IsolatedStorageFileStream isoStream = store.OpenFile("user_list", FileMode.Open))
{
    using (StreamWriter sw = new StreamWriter(isoStream))
    {
        sw.Write(all);
        sw.Flush();
    }
}

从文件中删除一个条目(c# StreamWriter类)

您可以通过在打开输出文件时将FileMode.Open更改为FileMode.Create来解决此问题。即:

using (IsolatedStorageFileStream isoStream = 
    store.OpenFile("user_list", FileMode.Create))