我在将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中添加额外的字符。
答案 0 :(得分:3)
我怀疑你最后会看到其他一些数据。其他东西可能已经将其他数据写入流中。
我认为您应该使用StreamWriter.WriteLine()
代替StreamWriter.Write()
来编写数据,然后拨打StreamReader.ReadLine()
而不是StreamReader.ReadToEnd()
来重读。