Проверка пустого потока

Я пытаюсь десериализовать 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 пуст или нет?

Ответы

Ответ 1

Проверьте свойство Length потока.

Длина представляет количество байтов, находящихся в данный момент в файле.

Если оно равно 0, файл пуст.

Ответ 2

Если ваш файл находится в формате UTF-8, размер составляет не менее 3 из-за спецификации (отметка байтового байта). Поэтому проверка длины > 0 вернет true, даже если ваш файл пуст.

Ответ 3

if isfs1.Length = 0 означает, что поток пуст