go プログラムでxzファイルを読み取るにはどうすればよいですか? を使用して読み込もうとするとlzma
、error in lzma header
エラーが発生します。
質問する
2548 次
2 に答える
9
3 つのオプションがあります。
- 別のライブラリ、おそらく cgo を使用するライブラリを試してください。ここに 2 つ表示されます。
- cgo を直接使用するか、独自のライブラリを作成します。
- xz 実行可能ファイルを使用します。
オプション 3 は、思ったより簡単です。これが私が使用するものです:
func xzReader(r io.Reader) io.ReadCloser {
rpipe, wpipe := io.Pipe()
cmd := exec.Command("xz", "--decompress", "--stdout")
cmd.Stdin = r
cmd.Stdout = wpipe
go func() {
err := cmd.Run()
wpipe.CloseWithError(err)
}()
return rpipe
}
ここで実行可能なコード: http://play.golang.org/p/SrgZiKdv9a
于 2013-10-24T04:04:07.310 に答える