我的应用程序从数组中读取数据,然后写入现有文件。它应写入行的末尾,但是当我运行应用程序时,它不会附加任何内容。
经过研究,我遇到了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");
}
}
答案 0 :(得分:1)
你的FileStream
对StreamWriter
的工作没有任何补充,其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");
}