隔离存储在流的末尾添加字符

时间:2013-08-01 18:29:03

标签: c# .net

我在将long转换为字符串时遇到问题。 我正在做的是尝试在isolatedStorage中保存DateTime.Now.Ticks属性,然后在之后检索它。这就是我为保存它所做的:

IsolatedStorageFile appStorage = IsolatedStorageFile.GetUserStoreForApplication();

using (var file = appStorage.CreateFile("appState"))
{
    using (var sw = new StreamWriter(file))
    {                    
        sw.Write(DateTime.Now.Ticks);
    }
}

当我检索文件时,我这样做:

if (appStorage.FileExists("appState"))
{
    using (var file = appStorage.OpenFile("appState", FileMode.Open))
    {
        using (StreamReader sr = new StreamReader(file))
        {
            string s = sr.ReadToEnd(); 
        }
    }
    appStorage.DeleteFile("appState");
}

直到这里我没有问题,但是当我尝试转换我检索的字符串时,编译器会抛出FormatExeption。这是我尝试使用的两种方式:

long time = long.Parse(s);
long time = (long)Convert.ToDouble(s);

还有其他方法吗?

编辑: 问题不在转换中,而是在StreamWriter中添加额外的字符。

1 个答案:

答案 0 :(得分:3)

我怀疑你最后会看到其他一些数据。其他东西可能已经将其他数据写入流中。

我认为您应该使用StreamWriter.WriteLine()代替StreamWriter.Write()来编写数据,然后拨打StreamReader.ReadLine()而不是StreamReader.ReadToEnd()来重读。