我正在尝试反序列化一个XML文件。在绑定反序列化之前,我需要检查XML文件流是否为空
IsolatedStorageFileStream isfs1 = new IsolatedStorageFileStream("test.xml",
FileMode.Open, FileAccess.Read, isf);
// Deserialize the XML to an object
Settings s = new Settings();
SoapFormatter SF= new SoapFormatter();
s = (Settings) SF.Deserialize(isfs1);
如何检查isfs1
是否为空?
检查流的Length
属性。
Length表示文件中当前的字节数。
如果为0,则该文件为空。
如果文件是UTF-8格式,则由于BOM(字节顺序标记)的原因,其大小至少为3。因此,即使文件为空,检查长度>0也会返回true。
IsolatedStorageFileStream.Length能工作吗?
if (isfs1.Length > 0) {
// isfs1 isn't empty.
}
如果构建空的zip存档内存流,它有22个字节处于空状态。
MemoryStream memoryStream = new MemoryStream();
using (ZipArchive zip = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
// no content added
}
memoryStream.Length // have value of 22
如果isfs1.Length=0表示流为空