我需要操纵文件的内容:
FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
StreamReader sr = new StreamReader(fs);
StreamWriter sw = new StreamWriter(fs);
newString = someStringTransformation(sr.ReadToEnd());
sw.Write(newString);
fs.flush();
fs.Close();
Run Code Online (Sandbox Code Playgroud)
但是,上面附加newString而不是使用新更改覆盖文件.需要这样做,以便在读取写入之间没有其他应用程序可以访问文件,这就是我从FileStream对象创建读取器和编写器的原因.
我知道,你可以创建一个与第二个参数集的StreanWriter虚假描述这里.但是,如上所述创建StreamWriter似乎不是其中一个参数.
我使用Stream writer将数据保存到文件名但是如果我第二次运行代码,则相同的数据会附加到先前的数据但我想清除旧数据并写入数据
我在文本文件中应该有的数据应如下所示
101 435435345 3445454541104021031A094101
52251 1 1 CCD1 110402110402 1111000020000001
6281110000251 00000000011 1 1 0111000020000001
822500000100111000020000000000010000000000001 111000020000001
9000001000001000000010011100002000000000001000000000000
Run Code Online (Sandbox Code Playgroud)
我的示例代码
if (i == 0)
{
index++;
string m_strDate = DateTime.Now.ToString("yyyy/MM/dd");
m_strDate = m_strDate.Replace("/", "");
StrFilePath = "log" + m_strDate + index + ".txt";
}
using (StreamWriter sw = new StreamWriter(StrFilePath,true))
{
using (StreamReader sr = new StreamReader(new MemoryStream(System.Text.Encoding.ASCII.GetBytes(strLine))))
{
while (sr.Peek() >= 0)
{
strReadLine = sr.ReadLine();
if (strReadLine.StartsWith("1"))
{
if (i == 0)
{
strFileHeader = strReadLine;
sw.WriteLine(strFileHeader); …Run Code Online (Sandbox Code Playgroud)