C# 怎样更改文本文件(TXT)中的内容

tangailingling 2009-02-21 10:51:24
有XXX.txt文件 内容如下:
1,B,C,D
2,C,D,E
3,D,E,F
4,E,F,G
5,a,s,d
6,....
.......

比如 我要修改第二行 2,C,D,E 修改为 9,f,g,h 怎样做

我试过用LIST<STRING>的方法 是可以的 但还有没有其他方法 学习中 !!!!!

C#有没有好像C++那样 可以将文本文件的指针移动 好像是SEEK????忘记了 高手请帮忙


不断学习的小袁上

...全文
4794 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_junguang 2012-09-07
  • 打赏
  • 举报
回复
能不能给解释一下呢
w_junguang 2012-09-07
  • 打赏
  • 举报
回复
怎么会出现乱码
jonglin 2012-03-14
  • 打赏
  • 举报
回复
学习 感谢
juanjuan526502 2012-03-14
  • 打赏
  • 举报
回复
学习了,非常感谢
lixiaobinbin123 2010-03-22
  • 打赏
  • 举报
回复
学习了,谢谢
fantcy 2010-01-21
  • 打赏
  • 举报
回复
代码谢了
http_it 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wangping_li 的回复:]
用文件流的方式比较好
C# code//把这个方法直接复制到你的项目中,后面直接调用就行了publicstaticvoid EditFile(int curLine,string newLineValue,string patch)
{
FileStream fs=new FileStream(patch, FileMode.Open, FileAccess.Read);
StreamReader sr=new StreamReader(fs, Encoding.GetEncoding("utf-8"));string line= sr.ReadLine();
StringBuilder sb=new StringBuilder();for (int i=1; line!=null; i++)
{
sb.Append(line+"\r\n");if (i!= curLine-1)
line= sr.ReadLine();else
{
sr.ReadLine();
line= newLineValue;
}
}
sr.Close();
fs.Close();
FileStream fs1=new FileStream(patch, FileMode.Open, FileAccess.Write);
StreamWriter sw=new StreamWriter(fs1);
sw.Write(sb.ToString());
sw.Close();
fs.Close();
}
调用时使用:
EditFile(2, " 9,f,g,h" ,"c:\\test.txt");//第一个参数是指定修改的行数,第二个参数是你要保存的值,第三个参数是这个文件的路径
[/Quote]


11 楼总结的很全面拿来就直接用! ^_^
aimeast 2009-03-03
  • 打赏
  • 举报
回复
看了是C#把人给变笨了。

我们写程序当然要用最高效的方法。

用FileStream打开文件后,有个Seek方法的。用法和C++类似。
plau_ming 2009-03-03
  • 打赏
  • 举报
回复
要是删除一行的文本内容呢?
zjq0034 2009-02-23
  • 打赏
  • 举报
回复
悄悄地我走了,正如我偷摸的来,我看了一圈,代码不用我来
tangailingling 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wangping_li 的回复:]
用文件流的方式比较好

C# code
//把这个方法直接复制到你的项目中,后面直接调用就行了
public static void EditFile(int curLine, string newLineValue, string patch)
{
FileStream fs = new FileStream(patch, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("utf-8"));
string line = sr.ReadLine();

[/Quote]


这方法是可以 但是第一行修改是不行的 还有 如果我输入123修改 就有问题了
wolf1118baby 2009-02-23
  • 打赏
  • 举报
回复
看来来迟了,都已经说完了
tangailing051027 2009-02-23
  • 打赏
  • 举报
回复
太好了 O(∩_∩)O谢谢
gisyellow 2009-02-22
  • 打赏
  • 举报
回复
二楼正解
fly4free 2009-02-22
  • 打赏
  • 举报
回复
seek需要明确的偏移量,你的数据每行长度是固定的吗?
wangping_li 2009-02-22
  • 打赏
  • 举报
回复
刚刚9前面多打了一个空格,不好意思

EditFile(2, "9,f,g,h" ,"c:\\test.txt");//第一个参数是指定修改的行数,第二个参数是你要保存的值,第三个参数是这个文件的路径
wangping_li 2009-02-22
  • 打赏
  • 举报
回复
用文件流的方式比较好

//把这个方法直接复制到你的项目中,后面直接调用就行了
public static void EditFile(int curLine, string newLineValue, string patch)
{
FileStream fs = new FileStream(patch, FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("utf-8"));
string line = sr.ReadLine();
StringBuilder sb = new StringBuilder();
for (int i = 1; line != null; i++)
{
sb.Append(line + "\r\n");
if (i != curLine - 1)
line = sr.ReadLine();
else
{
sr.ReadLine();
line = newLineValue;
}
}
sr.Close();
fs.Close();
FileStream fs1 = new FileStream(patch, FileMode.Open, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs1);
sw.Write(sb.ToString());
sw.Close();
fs.Close();
}

调用时使用:
EditFile(2, " 9,f,g,h" ,"c:\\test.txt");//第一个参数是指定修改的行数,第二个参数是你要保存的值,第三个参数是这个文件的路径
飞天鹰 2009-02-22
  • 打赏
  • 举报
回复
对,用文件流的方式来做
scy251147 2009-02-22
  • 打赏
  • 举报
回复

string[] line;
line = File.ReadAllLines("12.txt",System.Text.Encoding.Default);
line[1] = "9,f,g,h";
File.WriteAllLines("12.txt", line);
C_sdnElf 2009-02-22
  • 打赏
  • 举报
回复
文件流,,,up
加载更多回复(6)

110,500

社区成员

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

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

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