1

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

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 添加额外的字符。

4

1 回答 1

3

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

我认为您应该使用StreamWriter.WriteLine()而不是StreamWriter.Write()写入数据,然后调用StreamReader.ReadLine()而不是StreamReader.ReadToEnd()重新读取数据。

于 2013-08-01T18:55:36.027 回答