добавление текстового файла с использованием потоковой записи - PullRequest
1 голос
/ 31 мая 2011

У меня есть этот код, где я буду запускать следующий код в последовательности.

Я всегда буду создавать новый текстовый файл в начале.затем для 2-й и 3-й части кода мне просто нужно добавить текстовый файл "checknapshot", как мне сделать это с помощью 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");
        }
    }
}

Ответы [ 4 ]

8 голосов
/ 31 мая 2011

Как насчет этого,

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

true означает добавление, если файл существует.

4 голосов
/ 31 мая 2011

Используя правильный конструктор StreamWriter:

new StreamWriter(someFile, true)

откроет someFile и добавит.

1 голос
/ 31 мая 2011

Не знаю, почему ваш код не работает, но почему вы не используете встроенные методы:

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"
    ));
1 голос
/ 31 мая 2011

используйте 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...