-1

这是我的代码:

for (int j = 0; j < bufferreader.Length; j++)
{
    using (StreamWriter sw = File.AppendText(@"C:\Users\yamald\Documents\Normal.data"))
    {
        //sw.Write();

        if (bufferreader.length != null)
        {
            sw.Write(bufferreader[j] + ",");
        }
        else
        {
            sw.WriteLine("\n");
        }
    }
}

如何将数组末尾的“\n”写入文件?该else命令不运行。

4

2 回答 2

0

您可能应该只在其他所有内容之前创建 StreamWriter 对象并使其可用直到循环完成,然后只需编写newline循环之后,如下所示:

using (StreamWriter sw = File.AppendText(@"C:\Users\yamald\Documents\Normal.data"))
{
    for (int j = 0; j < bufferreader.Length; j++)
    {
        sw.Write(bufferreader[j] + ",");
    }
    sw.WriteLine("\n");
}

使用while循环并执行类似的操作while(bufferreader.length != null)而不是for循环和if语句也可能更好,但这取决于您,我有一段时间没有使用 bufferreader,所以不知道确切的语法。

但是,永远不会执行的原因else是(正如 EoiFirst 正确所说的那样)您实际上并没有更改 bufferreader.length 所以它永远不会为空。

于 2013-07-18T11:42:36.823 回答
0

您需要放置sw.WriteLine("\n");在 for 循环之后。

当 j = bufferreader.length 时循环停止,if 语句始终为真。

另外,我认为 bufferreader.length 永远不会为空,因为您永远不会修改此变量。我认为你需要的是:

if (bufferreader.length > j)
于 2013-07-18T11:44:57.847 回答