我创建了这个类来处理文件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()方法,为什么它们会变为空?
答案 0 :(得分:2)
我认为引用是null
,因为您将它们设置在try
块中。也许尝试创建一个新对象,并设置他们在try
块中引用的文件?