在文本文件中显示输出

时间:2015-09-07 17:57:53

标签: c# file streamwriter lexical-analysis

我已经通过文件获取输入代码,我必须根据它生成数据,并将其结果输出到文本文件中。 我的输出代码低于..

 public void Generator()
    {
    /// ....... Code
    public void DisplayTOKENS()
    {

        using (StreamWriter writer =
   new StreamWriter("C:\\Users\\saeed\\Documents\\Outputt.txt"))
        {
        for (int i = 0; i < j;i++ )
        {
            tok[i].Display_Token();
        } }

     }

//以及名为TOKEN的其他结构

public void Display_Token()
    { /*
            using (StreamWriter writer =
   new StreamWriter("C:\\Users\\saeed\\Documents\\Outputt.txt"))
        {
            writer.Write("( " + this.Class_Part + " , ");
            writer.Write(this.Value_Part + " , ");
            writer.Write(this.Line_no + " )");
            writer.WriteLine();
        }*/
           Console.Write("( " + this.Class_Part + " , ");
           Console.Write(this.Value_Part + " , ");
           Console.Write(this.Line_no + " )");
           Console.WriteLine();

    }

当我尝试直接在Display_Token中工作时,它只是显示文件中的最后一行..我想在文件中显示完整的数组。等待一些积极的回应!!

2 个答案:

答案 0 :(得分:0)

StreamWriter构造函数会覆盖现有文件。因此,每个令牌有效地删除先前写入的内容然后写入其内容。这就是为什么你只看到文件中最后一个标记的内容。

使用带有“append”参数的重载并传递true,以便不删除现有文件。

答案 1 :(得分:0)

你必须检查文件是否存在而不是&#34;追加&#34;操作而不是&#34;覆盖&#34;。

// in DisplayTOKENS()

string fileName = "C:\\Users\\saeed\\Documents\\Outputt.txt";
if (System.IO.File.Exists(fileName))
    System.IO.File.Delete(fileName);

for (int i = 0; i < j; i++)
{
    tok[i].Display_Token(fileName);
}


// in Display_Token(string fileName)

System.IO.File.AppendAllText(fileName, "( " + this.Class_Part + " , " + this.Value_Part + " , " + this.Line_no + " )");