StreamWriter.WriteLine()无法正常工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StreamWriter.WriteLine()无法正常工作相关的知识,希望对你有一定的参考价值。

我试图使用StreamWriter.WriteLine(非静态)将几行(一次一行)写入.txt文件。

const string filename = "BasicTestInfo.txt";
        using (var writer = new StreamWriter(filename, false))
        {
            writer.WriteLine("{0} 350 200 200 10 2 28 20 200 2500 1200 1 1", Player1);
            writer.WriteLine("{0} 300 150 150 4 2 15 18 150 2500 1000 1 0", Player2);
            writer.WriteLine("{0} 200 140 450 25 14 10 70 4500 2500 750 1 1", Player3);
            writer.WriteLine("{0} 175 120 400 15 3 8 50 3000 2500 850 1 0", Player4);
            writer.WriteLine("{0} 300 100 300 8 1 4 30 1000 2500 1200 1 0", Player5);
            writer.WriteLine("{0} 450 310 450 20 5 5 35 1500 2500 700 1 1", Player6);
        }

每个玩家对象都是字符串辅助对象。如果我使用不同的文件名(a.k.a. BasicTestInfo2.txt)运行它,它会在bin.Debug中创建该文件,但它是空的。我知道我到达了使用块的内部(我把一个Console.WriteLine放在那里),我知道我想要Truncate这就是为什么我使用false for append(尽管用true或no参数替换false)根本没有解决问题)。

基本问题是,即使文件被创建,文件中也没有文本行。

答案

是的,在VB.net中,默认设置不需要这个(独占刷新),但是使用C#,你需要一个Writer.Flush调用来强制写入。当然 - Writer.Close()也会强制刷新。或者,我们可以设置StreamWriter实例的AutoFlush属性:

sw.AutoFlush = true;
// Gets or sets a value indicating whether the StreamWriter 
// will flush its buffer to the underlying stream after every  
// call to StreamWriter.Write.

来自:http://msdn.microsoft.com/en-us/library/system.io.streamwriter.autoflush(v=vs.110).aspx

请注意:“使用”结构将避免独占冲洗,但很多人只是根据这个问题的主题登陆这里,这是面对问题时最低的成果。

另一答案

关闭作家

writer.close();

这对我有用。

另一答案

显示的代码看起来很好。

如果我不得不猜测,我怀疑有一个例外(可能来自ToString上的一个狡猾的Player实施),你正在吞咽某个地方。

逐步查看代码,看看在每个连续的WriteLine上发生了什么,以及它是否一直到using块的末尾没有错误。

另一答案

我有类似的问题。

我用这种方式修复它,只需将你的字符串放入String.Format():

writer.WriteLine(String.Format("{0} 350 200 200 10 2 28 20 200 2500 1200 1 1", Player1));

以上是关于StreamWriter.WriteLine()无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

软件工程师日报模板

ValueError 层序贯_13的输入0与层不兼容:预期ndim = 3,发现ndim = 4收到完整形状:(无,无,无,无)

如何修复'ValueError:输入0与层simple_rnn_1不兼容:预期形状=(无,无,20),找到形状=(无,无,2,20)'

树莓派3B 无显示器,无键盘,无Linux系统,无网线 配置WIFI连接

HTTP协议的 “无连接,无状态”

Visual Studio 2012 中的普通 C# 编辑器(无智能感知、无缩进、无代码突出显示)