使用streamwriter附加文本文件

本文关键字:文本 文件 streamwriter 使用 | 更新日期: 2023-09-27 17:57:57

我有这段代码,我将按顺序运行以下代码。

我总是在开始时创建一个新的文本文件。那么对于代码的第二部分和第三部分,我只需要附加文本文件"checksnapshot",我该如何使用streamwriter做到这一点?

//1
using (StreamReader sr = new StreamReader("C:''Work''labtoolssnapshot.txt")) ;
{
    string contents = sr.ReadToEnd();
    using (StreamWriter sw = new StreamWriter("C:''Work''checksnapshot.properties"))
    {
        if (contents.Contains(args[0]))
        {
            sw.WriteLine("SASE= 1");
        }
        else
        {
            sw.WriteLine("SASE= 0");
        }
    }
}
//2
using (StreamReader sr = new StreamReader("C:''Work''analyzercommonsnapshot.txt")) ;
{
    string contents = sr.ReadToEnd();
    using (StreamWriter sw = new StreamWriter("C:''Work''checksnapshot.properties"))
    {
        if (contents.Contains(args[0]))
        {
            sw.WriteLine("Analyzer= 1");
        }
        else
        {
            sw.WriteLine("Analyzer= 0");
        }
    }
}
//3
using (StreamReader sr = new StreamReader("C:''Work''mobilesnapshot.txt")) ;
{
    string contents = sr.ReadToEnd();
    using (StreamWriter sw = new StreamWriter("C:''Work''checksnapshot.properties"))
    {
        if (contents.Contains(args[0]))
        {
            sw.WriteLine("mobile= 1");
        }
        else
        {
            sw.WriteLine("mobile= 0");
        }
    }
}

使用streamwriter附加文本文件

做这个怎么样,

new StreamWriter("C:''Work''checksnapshot.properties",true)

true表示如果文件存在则追加。

通过使用StreamWriter:的正确构造函数

new StreamWriter(someFile, true)

将打开someFile并追加。

我不知道为什么你的代码不起作用,但为什么你不使用内置方法:

string contents = File.ReadAllText("C:''Work''labtoolssnapshot.txt");
string contents2 = File.ReadAllText("C:''Work''analyzercommonsnapshot.txt");
string contents3 = File.ReadAllText("C:''Work''mobilesnapshot.txt");
string outFile = "C:''Work''checksnapshot.properties";
//1 
if (contents.Contains(args[0]))
{
    File.WriteAllText(outFile,"SASE=1");
}
else
{
    File.WriteAllText(outFile,"SASE=0");
}
//2 
if (contents2.Contains(args[0]))
{
    File.AppendAllText(outFile,"Analyzer= 1");
}
else
{
    File.AppendAllText(outFile,"Analyzer= 0");
}
//3
if (contents3.Contains(args[0]))
{
    File.AppendAllText(outFile,"mobile= 1");
}
else
{
    File.AppendAllText(outFile,"mobile= 0");
}

或者,在一个更懒惰的代码中:

var contents = File.ReadAllText("C:''Work''labtoolssnapshot.txt");
var contents2 = File.ReadAllText("C:''Work''analyzercommonsnapshot.txt");
var contents3 = File.ReadAllText("C:''Work''mobilesnapshot.txt");
var outFile = "C:''Work''checksnapshot.properties";
File.WriteAllText(outfile, string.Format(
@"SASE= {0}
Analyzer= {1}
mobile= {2}
",
    contents.Contains(args[0]) ? "1" : "0",
    contents2.Contains(args[0]) ? "1" : "0",
    contents3.Contains(args[0]) ? "1" : "0"
    ));

使用FileStream而不是StreamWriter:

using (FileStream fs = new FileStream("C:''Work''checksnapshot.properties",FileMode.OpenOrCreate,FileAccess.Append))
{
    StreamWriter writer = new StreamWriter(fs);
    writer.Write(whatever);
}

注意:我只在.NET 4 中使用过这个