4

我有一个标准的 gzip 文件,我想将它读入 F# 中的序列。我在 Expert F# 3.0 中找到了如何读取常规文件的示例,并在 MSDN 文档中找到了.NET GZipStream 类的参考,但我是 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()}
4

1 回答 1

5

(发表评论作为答案)

GZipStream继承Stream,所以只需将你的底层流与它一起传递给它的构造函数CompressionMode

new StreamReader(
  GZipStream(
    File.OpenRead("test.txt"), 
    CompressionMode.Decompress))
于 2013-04-22T22:12:51.030 回答