我正在尝试使用二进制阅读器读取.gz文件,方法是首先使用gzipstream解压缩,然后使用gzipstream创建一个新的二进制阅读器。但是,当我尝试使用BinaryReader的BaseStream.Position和BaseStream.Length(以了解我何时位于文件末尾)时,我收到了NotSupportedException,请检查GZipStream类中这些字段的doc显示:
Length
不支持此属性,并且始终抛出NotSupportedException。(重写Stream.Length。)
Position
不支持此属性,并且始终抛出NotSupportedException。(重写Stream.Position。)
所以我的问题是,当我使用BinaryReader读取解压缩的GZipStream时,如何知道文件的末尾位置?谢谢
这是我的代码:
Stream stream = new MemoryStream(textAsset.bytes);
GZipStream zippedStream = new GZipStream(stream, CompressionMode.Decompress);
using (BinaryReader reader = new BinaryReader(zippedStream))
while(reader.BaseStream.Position != reader.BaseStream.Length)
{
//do stuff with BinaryReader
}
以上抛出:NotSupportedException:不支持该操作。System.IO.Compression.DeflateStream.get_Position()
由于while()中的BaseStream.Position调用
相关分类