正在检查流是否为空



我正在尝试反序列化一个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表示流为空

相关内容

  • 没有找到相关文章

最新更新