2011-05-31 106 views
1

我有這段代碼,我將按順序運行下面的代碼。使用streamwriter追加文本文件

我將始終在開始時創建一個新的文本文件。那麼對於代碼的第二部分和第三部分,我只需要添加文本文件「checksnapshot」,我如何使用streamwriter來做這件事?的FileStream代替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"); 
     } 
    } 
} 

回答

8

用這個怎麼樣這樣做,

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

真正手段追加如果文件存在。

1

使用:

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

注:我只在.NET 4

4

使用的StreamWriter適當的構造函數:

new StreamWriter(someFile, true) 

將打開someFile和追加。

1

我不知道爲什麼你的代碼不工作,但你爲什麼不使用內置的方法:

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" 
    ));