文件流对象引用未设置为对象的实例
Filestream Object reference not set to an instance of an object
我创建了这个 class 来处理文件 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) { }
}
}
我正在另一个 class 中使用它,例如
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");
它给我对象引用未设置到对象错误的实例。
我在调试时查看了 abject stream 变量,它们是空的,
我的问题是,如果我还没有调用 CloseCreateOrAppendFileForOutput() 方法,为什么它们会变成 null?
我认为引用是 null
,因为您将它们设置在 try
块中。也许尝试创建一个新对象,并在 try
块中设置它们引用的文件?
我创建了这个 class 来处理文件 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) { }
}
}
我正在另一个 class 中使用它,例如
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");
它给我对象引用未设置到对象错误的实例。 我在调试时查看了 abject stream 变量,它们是空的, 我的问题是,如果我还没有调用 CloseCreateOrAppendFileForOutput() 方法,为什么它们会变成 null?
我认为引用是 null
,因为您将它们设置在 try
块中。也许尝试创建一个新对象,并在 try
块中设置它们引用的文件?