从文件中删除一个条目(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();
}
}
您可以通过在打开输出文件时将FileMode.Open
更改为FileMode.Create
来解决此问题。即:
using (IsolatedStorageFileStream isoStream =
store.OpenFile("user_list", FileMode.Create))