Filestream对象引用未设置为对象的实例

时间:2016-06-21 23:48:46

标签: c# filestream streamwriter

我创建了这个类来处理文件io

public class FileStreamManager
{
    public FileStream fileStream;
    public StreamWriter streamWriter;
    public StreamReader streamReader;

    public bool CreateOrAppendFileForOutput(string fileName)
    {
        try
        {

            fileStream = new FileStream(fileName, FileMode.Append, FileAccess.Write);
            streamWriter = new StreamWriter(fileStream);
            return true;
        }
        catch (Exception) { }

        return false;
    }
    public void CloseCreateOrAppendFileForOutput()
    {
        try
        {
            fileStream.Dispose();
            streamWriter.Dispose();
        }
        catch (Exception) { }
    }
}

并且我在另一个类中使用它,比如

FileStreamManager fsmExcpLog = new FileStreamManager();
fsmExcpLog.CreateOrAppendFileForOutput(todaysTestDirPath + @"\ExceptionLog.txt");

FileStreamManager fsmOffersLog = new FileStreamManager();
fsmOffersLog.CreateOrAppendFileForOutput(todaysTestDirPath + @"\OffersLog.txt");

FileStreamManager fsmTestedAddLog = new FileStreamManager();
fsmExcpLog.CreateOrAppendFileForOutput(System.AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.AppSettings["AddressLogFilePath"].Trim());

但是当我尝试用这个写

fsmTestedAddLog.streamWriter.WriteLine("Some Data");

它给我对象引用未设置为对象Error的实例。 我在查看abject流变量时调试它们为null, 我的问题是,如果我还没有调用CloseCreateOrAppendFileForOutput()方法,为什么它们会变为空?

1 个答案:

答案 0 :(得分:2)

我认为引用是null,因为您将它们设置在try块中。也许尝试创建一个新对象,并设置他们在try块中引用的文件?