我有点卡住了。我必须使用getItems
方法并将其输出到PrintItems.txt,但我不确定如何解决此问题。
这是我的GetItems
方法:
public string getItems()
{
string strout = "stock items " + "\n";
foreach (Stock s in stock)
{
strout = strout + s.ToString() + "\n";
}
return strout;
}
这是我的PrintItems
方法:
string filename = "printitems.txt";
int count = 0;
using (StreamWriter sw = new StreamWriter(filename))
{
while (count < 5 && count < stock.Count)
{
Stock t = stock[count];
sw.WriteLine(t);
count++;
}
}
它不起作用,因为它根本不写入文件。
答案 0 :(得分:2)
您的代码通常应该有效。
但由于您尚未指定文本文件的完整路径 - 它将在您的可执行文件所在的同一文件夹中创建。
如果从Visual Studio运行它 - 它应该在your_project\bin\Debug
或your_project\bin\Release
文件夹中。
答案 1 :(得分:1)
您可以使用:
File.WriteAllText(@"C:\dummy.txt", strout);
(只要你不希望字符串很大 - 即10MB)
&#39;文件&#39;使用System.IO
答案 2 :(得分:0)
如果你没有复制&amp;粘贴错误然后有4种可能的现象:
string filename = "printitems.txt";
int count = 0;
using (StreamWriter sw = new StreamWriter(filename))
{
while (count < 5 && count < stock.Count)
{
Stock t = stock[count];
sw.WriteLine(t.ToString());
count++;
}
}
你没有{在使用直线的节选者之后是我先看到的东西。第二件事是股票t通常不能直接写入,而是你需要做同样的事情,就像把它打印到控制台一样。
第三:您的代码没有说明股票是否已经填补。
第四:文件:您应该指定一个目录(不仅是文件名),否则可能会尝试在您无权创建文件的位置创建该文件(通常如果您放入使用与运行应用程序的路径相同的路径中没有其他路径信息[如果从visual studio本身开始,然后是appropraite bin路径]作为创建文件的位置。
另外:你应该在整个事物周围放置一个try catch块,因为可能会出现导致异常的意外现象。