Является ли открытие потока файлов дорогостоящей операцией
Я хотел бы предоставить функцию отложенной загрузки в классе, который читает структурированный файл.
Каждый элемент файла имеет заголовок и полезную нагрузку.
идея состоит в том, чтобы загружать только заголовки из файла и получать доступ к данным полезной нагрузки только тогда, когда
Доступ к соответствующему полю
прототип класса будет выглядеть в C #
public class OneElement
{
public Header TheHeader {get; private set;}
private string _FileName;
private long _StreamPosition; // this value is initialized when the header is read
private Payload _ThePayload;
public Payload ThePayload
{
get{
if (_ThePayload == null)
using (var stream = File.OpenRead(_FileName) )
{
stream.seek(_StreamPosition,SeekOrigin.Begin); // seek to the relevent position
_ThePayload = ReadPayload(stream); // this method return the paylod read reads from the current position
}
return _ThePayload;
}
}
}
Будет ли операция открытия файла и получения полезной нагрузки дорогостоящей, особенно в контексте, где полезная нагрузка будет представлять аудио- или видеоданные