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