我有这个代码
StreamWriter sw = new StreamWriter(this.FileName, true);
sw.WriteLine(text);
sw.Close();
我改为此(由于争用问题):
StreamWriter sw = new StreamWriter(
new FileStream(this.FileName, FileMode.OpenOrCreate
, FileAccess.ReadWrite, FileShare.Write)
, Encoding.ASCII);
sw.WriteLine(strLog);
sw.Close();
问题是第一个工作正常,输出了人类可读的正确文本(这是一个日志文本文件)。第二个输出完全螺旋输出,无论我使用的编码类型如何。我尝试过ASCII,UTF7,8,Unicode和Default。很明显,我遗漏了一些关于FileStream或TextWriter的基本知识。请爱我。
答案 0 :(得分:3)
我已经尝试过你的代码而无法重现任何奇怪的行为。
一些想法:
编辑:
该问题的解决方案是使用FileMode.Append,根据这篇文章的评论。
答案 1 :(得分:0)
只是为了检查明显的,你有:
sw.WriteLine(text);
第一个例子中的和
sw.WriteLine(strLog);
在第二个。没有看到你的所有代码,我无法知道以下的答案,所以我不得不问:
您的来源中的测试和strLog是不同的东西,还是差别只是一个错字?