4

F# のシーケンスに読み込みたい標準の gzip ファイルがあります。Expert F# 3.0 で通常のファイルを読み取る方法の例と、MSDN ドキュメントの.NET GZipStream クラスの参照を見つけましたが、F#/.NET は初めてで、2 つを組み合わせて取得する方法がわかりません。望ましい結果。

具体的には、以下のコードを変更して、test.txt.gz などの gzip ファイルを読み取るにはどうすればよいですか?

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 に答える