我有以下代码从文本文件中读取一行。 在UpdateFile()方法中,我需要删除现有的一行并用新行更新它。 任何人都可以提供任何想法吗? 谢谢。
FileInfo JFile = new FileInfo(@"C:\test.txt");
using (FileStream JStream = JFile.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None))
{
int n = GetNUmber(JStream);
n = n + 1;
UpdateFile(JStream);
}
private int GetNUmber(FileStream jstream)
{
StreamReader sr = new StreamReader(jstream);
string line = sr.ReadToEnd().Trim();
int result;
if (string.IsNullOrEmpty(line))
{
return 0;
}
else
{
int.TryParse(line, out result);
return result;
}
}
private int UpdateFile(FileStream jstream)
{
jstream.Seek(0, SeekOrigin.Begin);
StreamWriter writer = new StreamWriter(jstream);
writer.WriteLine(n);
}
答案 0 :(得分:3)
我认为以下代码可以完成您的工作
StreamWriter writer = new StreamWriter("file path", false); //false means do not append
writer.Write("your new line");
writer.Close();
答案 1 :(得分:2)
如果您只是写一行,则不需要流或缓冲区或其中任何一个。直接写它。
using System.IO;
File.WriteAllText(@"C:\test.txt", "hello world");
答案 2 :(得分:2)
var line = File.ReadLines(@"c:\temp\hello.txt").ToList()[0];
var number = Convert.ToInt32(line);
number++;
File.WriteAllText(@"c:\temp\hello.txt", number.ToString());
管理可能的异常,文件存在,文件有行,演员......