2012-01-27 48 views
1

我正在使用C#/ XNA构建Windows Phone游戏。在游戏中,我需要能够从IsolatedStorage中读取一些数据。为此,我创建一个IsolatedStorageFileStream,然后调用Read函数。该msdn documentationIsolatedStorageFileStream.Read状态以下:如何从IsolatedStorage直接读入整数数组?

缓冲器参数可以是缓冲液类的一个实例,或以下类型之一的数组:字节,为SByte,CHAR,Int16类型,的Int32,Int64类型, UInt16,UInt32,UInt64,Single或Double。

但是,Read函数只有一个过载,它需要一个字节数组,而不是整数或任何其他类型。我意识到简单的解决方法是将数据读入一个字节块,然后在循环中使用the BitConverter.ToInt32 function来获取我想要的数据。不过,如果可能的话,我希望能够直接从文件中读取整数块到整数数组中,而无需花费额外的中间内存。有任何想法吗?

+0

此外,我也好奇,为什么MSDN文档声称它是如果显然不是,可以使用'IsolatedStorageFileStream.Read'函数读入整数数组。 – sushovande 2012-01-27 00:24:52

回答

0

您可以使用Streams处理独立存储。他们使访问隔离存储变得更容易。这样可以避免使用字节和缓冲区进行低级访问。

一个良好的开端:
http://create.msdn.com/en-US/education/quickstarts/Isolated_Storage

约隔离存储(和Windows Phone 7开发)的一些真正的好文章:
http://www.windowsphonegeek.com/tips/all-about-wp7-isolated-storage--intro-to-isolated-storage

+0

从您发布的第二个链接中,我发现我可以从''BinaryReader](http://msdn.microsoft.com/zh-cn/library/a4b8basy(v = vs.95 \).aspx) IsolatedStorageFileStream'对象。 [BinaryReader.ReadInt32](http://msdn.microsoft.com/en-us/library/system.io.binaryreader.readint32(v = vs.95 \).aspx)函数现在就足够了,尽管我希望有一种方法可以读取整个整数数组,而不是逐个读取它们。 – sushovande 2012-01-27 00:22:03