【发布时间】:2012-01-24 04:32:07
【问题描述】:
我有一个包含多个文本条目的文件,比如说
一个
两个
三
现在,我需要删除其中一个条目,比如“两个”。我正在使用 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