2015-04-16 117 views
-2

我有点卡住了。我必须使用getItems方法并将其输出到PrintItems.txt,但我不确定如何解决此问题。输出到.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++; 
    } 
} 

它不工作,因为它不写入一个文件都没有。

+3

错误吗?你是否确实没有写入文件 - IE或许“printitems.txt”没有出现在你期望的文件夹中,因为你没有为它指定路径等。另外'getItems'不是由您的文件编写代码使用? –

+0

你是否检查过文件的'/ bin'目录? –

+0

你需要输出getItems()的返回值吗?那你为什么不叫这个函数呢? – Kyborek

回答

1

你可以使用:

File.WriteAllText(@"C:\dummy.txt", strout); 

(只要你不希望字符串是巨大的 - 即10MB)

'文件' 使用System.IO

2

你的代码一般应该工作。

但是由于您没有指定文本文件的完整路径 - 它将在您的可执行文件所在的同一文件夹中创建。

如果你从Visual Studio运行它 - 它应该在your_project\bin\Debugyour_project\bin\Release文件夹中。

0

如果再没复制&粘贴错误,则有您pheonomenon 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++; 
      } 
     } 

你没有{后使用线StreamWriter的是我看到的第一个。第二件事是股票通常不能直接写入,而是需要做和打印到控制台上一样的东西。

第三:如果股票是否被填充,你的代码没有说什么。

第四:文件:你应该指定一个目录(不仅是文件名),否则它可能是它试图在你没有权限创建文件的位置创建文件(通常如果你在与使用应用程序的位置相同的路径中使用[如果您从Visual Studio本身开始,然后使用appropraite bin路径]将文件创建到的位置,则不会在路径信息中添加其他路径信息。

另外:你应该在整个事情上放一个try catch块,因为可能会有意外的现象导致异常。