程序关闭消除了StreamWriter

时间:2011-12-12 19:46:47

标签: c# winforms streamwriter

我正在开发一个小型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;
    }

知道问题可能是什么? 在此先感谢您,如果您需要代码的任何其他部分,请告诉我。

2 个答案:

答案 0 :(得分:1)

尝试在StreamWriter调用中添加第二个boolean参数。这是append参数。如果为True,则附加到文件,false为覆盖它。

sw = new StreamWriter(aFile, false);

答案 1 :(得分:1)

StreamWriter语句中创建using,以确保其正确关闭。