从数组中读取数据并写入以附加到现有文件:我的代码不按预期附加数据

时间:2013-04-05 13:11:20

标签: c# filestream

我的应用程序从数组中读取数据,然后写入现有文件。它应写入行的末尾,但是当我运行应用程序时,它不会附加任何内容。

经过研究,我遇到了this similar post。我修改了我在该帖子上回答的代码,现在收到错误:

  

'FileStream'是namespace,但用作type

我添加了System.IO命名空间,但问题仍然存在。

这是我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        string file_path = @"C:\Users\myfolder\Desktop\FileStream\Processed\Output.txt";
        string data = " ";


        try
        {
            using (FileStream aFile = new FileStream(file_path, FileMode.Append, FileAccess.Write))
            using (StreamWriter author = new StreamWriter(aFile, true))
            {
                string[] output_receiptNos = ReadFile().ToArray();
                for (int index = 0; index < output_receiptNos.Length; index++)
                {
                    data = output_receiptNos[index];
                    author.WriteLine(data);
                }
                MessageBox.Show("Data Sucessfully Processed");

            }

        }
        catch (Exception err)
        {
            MessageBox.Show("Could not process Data");
        }
    }

1 个答案:

答案 0 :(得分:1)

你的FileStreamStreamWriter的工作没有任何补充,其predefined constructor带有一个字符串(用于文件名)和一个布尔值(用于附加(覆盖数据))。因为StreamWriter没有构造函数接受Stream和布尔值,所以不可编译。

正如有人已在评论中提到的那样,您的代码中可能存在冲突,其中一些命名空间奇怪地命名为“FileStream”。 (顺便说一句坏话) 但是,我认为您可以直接使用StreamWriter类来删除错误 然后花点时间找出编译器认为你有一个名为“FileStream”

的命名空间的原因
        using (StreamWriter author = new StreamWriter(file_path, true))
        {
            string[] output_receiptNos = ReadFile().ToArray();
            for (int index = 0; index < output_receiptNos.Length; index++)
            {
                data = output_receiptNos[index];
                author.WriteLine(data);
            }
            MessageBox.Show("Data Sucessfully Processed");
        }