我正在开发一个小型ATM程序而且我遇到了 StreamWritter 问题。 在加载时,我的程序必须使用 StreamReader 来读取位于我的bin / debug中的4个.txt文件。然后要求用户从位于.txt文件中的银行账户存入或提取资金。一切都适用于 StreamReader ,它在程序加载时加载所有银行帐户,并且 StreamWriter 在我添加/删除钱时写入.txt文件中的更改。 我的问题是当我关闭程序时,文件的加载工作正常,但我不能再写入文件了。我的 StreamWriter 直接跳转到 Catch 部分,无法实例化。如果它在首次使用时工作正常,那怎么可能呢? 继承人 StreamReader 代码:
public bool ReadSavingAccount()
{
string strLine;
string[] strArray;
char[] charArray = new char[] { ',' };
FileStream aFile;
StreamReader sr;
try
{
aFile = new FileStream("mySavingAccount.txt", FileMode.Open);
sr = new StreamReader(aFile);
strLine = sr.ReadLine();
while (strLine != null)
{
strArray = strLine.Split(charArray);
Savings monSave = new Savings(strArray[0], Convert.ToDouble(strArray[1]));
mySavingAccount.Add(monSave);
strLine = sr.ReadLine();
}
sr.Close();
aFile.Close();
}
catch
{
return false;
}
return true;
}
StreamWrite 代码:
public bool WriteSavingAccount()
{
FileStream aFile;
StreamWriter sw;
string myString;
try
{
aFile = new FileStream("mySavingAccount.txt", FileMode.Create);
sw = new StreamWriter(aFile);
}
catch
{
return false;
}
foreach (Savings mySave in mySavingAccount)
{
myString = mySave.AccountNumber + "," + mySave.AccountBalance;
sw.WriteLine(myString);
}
sw.Close();
return true;
}
知道问题可能是什么? 在此先感谢您,如果您需要代码的任何其他部分,请告诉我。
答案 0 :(得分:1)
尝试在StreamWriter调用中添加第二个boolean参数。这是append参数。如果为True,则附加到文件,false为覆盖它。
sw = new StreamWriter(aFile, false);
答案 1 :(得分:1)
在StreamWriter
语句中创建using
,以确保其正确关闭。