我有一个标准的gzip文件,我想在F#中读入一个序列。我找到了一个如何在Expert F#3.0中读取常规文件和在MSDN文档中引用.NET GZipStream Class的示例,但我是F#/ .NET的新手,并且不知道如何将两者结合起来获取期望的结果。
具体来说,如何修改下面的代码来读取gzip文件,例如test.txt.gz?
let linesOfFile =
seq {use reader = new StreamReader(File.OpenRead("test.txt"))
while not reader.EndOfStream do
yield reader.ReadLine()}
答案 0 :(得分:4)
(发表评论作为回答)
GZipStream
继承Stream
,因此只需将您的基础流与CompressionMode
一起传递给其构造函数:
new StreamReader(
GZipStream(
File.OpenRead("test.txt"),
CompressionMode.Decompress))