Direct file to this resource, when available.
This is meant to be used as an optimization for consumers which can't work efficiently
with streams. However, file is not guaranteed to be set, for example if the resource
underwent transformations or is being read from an archive. Therefore, consumers should
always fallback on regular stream reading, using read or
File? get file => null;