C# 隔离存储文件流出现问题

C# 隔离存储文件流出现问题,c#,windows-phone-7,C#,Windows Phone 7,每当我运行此代码时: IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication(); StreamWriter Writer = new StreamWriter(new IsolatedStorageFileStream("TestFile.txt", FileMode.OpenOrCreate, fileStorage)); Writer.WriteLine(email1.Text + "

每当我运行此代码时:

IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
StreamWriter Writer = new StreamWriter(new IsolatedStorageFileStream("TestFile.txt", FileMode.OpenOrCreate, fileStorage));
Writer.WriteLine(email1.Text + "," + email2.Text + "," + email3.Text + "," + email4.Text);
Writer.Close();
我得到这个错误:

在mscorlib.ni.dll中发生“System.IO.IsolatedStorage.IsolatedStorageException”类型的异常,但未在用户代码中处理

我正在使用模拟器,但这不应该是一个问题。我已经包括了这一行

Using System.IO.IsolatedStorage;

使用IsolatedStorage时遇到的问题是

System.IO.IsolatedStorage.IsolatedStorage异常

这是因为您在使用存储后并没有实际关闭它。这也会在安全方面引发异常。将代码重写为:

using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (var file = storage.OpenFile("TestFile.txt", System.IO.FileMode.OpenOrCreate))
            {
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter())
                {
                    writer.WriteLine(email1.Text + "," + email2.Text + "," + email3.Text + "," + email4.Text);
                }
            }
        }
实际使用所做的是,使用将调用dispose方法,从而使其可重用。存储、文件流、streamwriter都有处置方法,使用“使用”实际上是有益的。这通常不会引发维护资源的异常,但对于有关文件名的参数异常,仍然会产生问题

在处理文件和输入时,必须始终使用Try…catch

编辑 代码为如何阅读:

string dataToRead = string.Empty;
using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
   using (var file = storage.OpenFile("TestFile.txt", System.IO.FileMode.Open))
   {
        using (var reader = new System.IO.StreamReader(file))
        {
                dataToRead = reader.ReadToEnd();
        }
   }
}

使用IsolatedStorage时遇到的问题是

System.IO.IsolatedStorage.IsolatedStorage异常

这是因为您在使用存储后并没有实际关闭它。这也会在安全方面引发异常。将代码重写为:

using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            using (var file = storage.OpenFile("TestFile.txt", System.IO.FileMode.OpenOrCreate))
            {
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter())
                {
                    writer.WriteLine(email1.Text + "," + email2.Text + "," + email3.Text + "," + email4.Text);
                }
            }
        }
实际使用所做的是,使用将调用dispose方法,从而使其可重用。存储、文件流、streamwriter都有处置方法,使用“使用”实际上是有益的。这通常不会引发维护资源的异常,但对于有关文件名的参数异常,仍然会产生问题

在处理文件和输入时,必须始终使用Try…catch

编辑 代码为如何阅读:

string dataToRead = string.Empty;
using (var storage = IsolatedStorageFile.GetUserStoreForApplication())
{
   using (var file = storage.OpenFile("TestFile.txt", System.IO.FileMode.Open))
   {
        using (var reader = new System.IO.StreamReader(file))
        {
                dataToRead = reader.ReadToEnd();
        }
   }
}

将代码包装在一个
Try…Catch
块中,查看异常消息的内容。@keyboardP异常消息将是关于IsolatedStorageException right的。调试器消息与此有什么区别?这只是关于他如何仅处理变量的问题?@max-在这种情况下,
已关闭(+1),您是对的,但OP最好了解
Try…Catch
方法以及如何使用它们来帮助调试问题。@keyboardP确切地说。不要意外关闭应用程序,这一点非常重要。这将导致认证的终止。这是一个很好的建议。将代码包装在一个
Try…Catch
块中,然后查看异常消息的内容。@keyboardP异常消息将是关于IsolatedStorageException的。调试器消息与此有什么区别?这只是关于他如何仅处理变量的问题?@max-在这种情况下,
已关闭(+1),您是对的,但OP最好了解
Try…Catch
方法以及如何使用它们来帮助调试问题。@keyboardP确切地说。不要意外关闭应用程序,这一点非常重要。这将导致认证的终止。这是一个很好的建议。我该如何从中解读?我想从文件中读取。你写的代码有效though@chipperyman573我在代码中添加了“如何阅读”。如果您想对其进行更多编辑,请告诉我。我将如何阅读?我想从文件中读取。你写的代码有效though@chipperyman573我在代码中添加了“如何阅读”。如果您想对其进行更多编辑,请告诉我。