如何用c#实现在txt的任意指定位置添加字符串而不会把其他字符覆盖掉

xujianfu 2009-09-07 08:31:22
如何用c#实现在txt的任意指定位置添加字符串而不会把其他字符覆盖掉,
比如我有aa.txt文件里面有内容:
aaaaaa
bbbbbb
cccccc
dddddd
现在我要在aaaaa前面插入数据或者在bbbb前面插入数据变成
xxxxx
aaaaa
bbbbb
ccccc

aaaaa
xxxxx
bbbbb
ccccc
如果文件小我可以把文件内容读出来重新组合,但是我的文件都太大了,而且文件数量非常多用手工操作会累死的。

StreamWriter sw = new StreamWriter(dir + foldname + ".txt", true);
sw.BaseStream.Position = 0;
sw.WriteLine(list[j].ToString());
得到的提示是:“无法通过向后搜索来改写以追加模式打开的文件中的原有数据”;
用FileStream也是一样
...全文
968 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
xtsyzj 2010-04-22
  • 打赏
  • 举报
回复
我也要看看 嘻嘻
ufc2010 2010-04-08
  • 打赏
  • 举报
回复
看看 谢谢
technoage 2009-10-30
  • 打赏
  • 举报
回复
看看是什么好方法。
angel6709 2009-09-08
  • 打赏
  • 举报
回复
恩,三楼用StringBuilder更完美了
LutzMark 2009-09-08
  • 打赏
  • 举报
回复
3楼正解
wuyi8808 2009-09-08
  • 打赏
  • 举报
回复
可以考虑同时打开两个文件,一个读,一个写,新文件放在一个新建的文件夹。全部正确完成后删除旧文件夹,把新文件夹改名为旧文件夹。
gisyellow 2009-09-08
  • 打赏
  • 举报
回复
就用FileStream,不过要两个,一个读取,一个创建新的。。读出来一行,就判断是否需要添加,是就添加了再写入新的。。
xujianfu 2009-09-08
  • 打赏
  • 举报
回复
多谢各位啦,结贴
pengalwin 2009-09-07
  • 打赏
  • 举报
回复
楼上应该可以吧

关注,学习,这方面不懂
cnzdgs 2009-09-07
  • 打赏
  • 举报
回复
全部读出=>插入字符串=>全部保存。
怫悰 2009-09-07
  • 打赏
  • 举报
回复
冒泡帮顶接分

可对比一下速度了?
使用重新组合的方法,边读(改名后?)边写,读到指定位置插入再读,笨方法,分析或对比一下速度,什么原因?想知道
xujianfu 2009-09-07
  • 打赏
  • 举报
回复
先谢谢了
xujianfu 2009-09-07
  • 打赏
  • 举报
回复
就文本,不放SQL,SQL存取速度比文本慢太多
lzsh0622 2009-09-07
  • 打赏
  • 举报
回复
解题思路:

(1)读文件:读文本文件存入一个字符串( String txt ) 最大支持4GB.

(2)字符串处理
 txt.Insert(position, "新加入的文本");  //指定位置加入的文本

(3)写文件:把txt写入一个文本文件。

另外:FileStream,流是单向,有去无回,不能随机定点插入文本。
SQL77 2009-09-07
  • 打赏
  • 举报
回复
不知道SQL能行不??那样也许很麻烦,
建议楼主用LIST<STRING>来存放
xujianfu 2009-09-07
  • 打赏
  • 举报
回复
救命啊。。。高分求助,分数不够再开帖子散分.....

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧