如何在f#中读取gzip文件?

时间:2013-04-22 18:12:28

标签: f# gzip

我有一个标准的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()}

1 个答案:

答案 0 :(得分:4)

(发表评论作为回答)

GZipStream继承Stream,因此只需将您的基础流与CompressionMode一起传递给其构造函数:

new StreamReader(
  GZipStream(
    File.OpenRead("test.txt"), 
    CompressionMode.Decompress))