如何解决使用streamwriter附加文本文件
| 我有这段代码,我将按顺序运行以下代码。 我将始终在开始时创建一个新的文本文件。那么对于代码的第二部分和第三部分,我只需要附加文本文件“ 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\");
}
}
}
解决方法
那怎么办
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中使用过
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。