5
私は応答クラスを提供する以下のようなことができますが、io.readerをファイルに書き込む方法が正確にはわかりません。最も簡単な方法は何ですか?ファイルをダウンロードする最も簡単な方法は?
http.Get("https://www.domain.com/some.jpg")
私は応答クラスを提供する以下のようなことができますが、io.readerをファイルに書き込む方法が正確にはわかりません。最も簡単な方法は何ですか?ファイルをダウンロードする最も簡単な方法は?
http.Get("https://www.domain.com/some.jpg")
ファイルは、最も簡単な解決策はioutil.ReadAllと合わせioutil.WriteFileを使用することで十分に小さい場合:
resp, err := http.Get("your url")
bytes, err := ioutil.ReadAll(resp.Body)
err = ioutil.WriteFile(filename, bytes, 0666)
あなたのファイルがそれほど小さくない場合は、あなたがより良いbytes
を作成し、充填を避けるだろうアレイ。そして、あなたはどのio.Copy単にコピーにライターに読者からのバイトを使用する必要があります。
resp, err := http.Get("your url")
f, err := os.Create(filename)
defer f.Close()
_, err := io.Copy(f, resp.Body)
あなたはどちらの場合も、関連するエラー処理を追加する必要があります。
私は本当に 'ioutil.ReadAll'を否定したいと思います。あなたがうまく動作するアプリケーションでやりたいことはほとんどありません。 – Dustin
@Dustinファイルが十分に小さい場合は、問題ではないと思います。私はこの点に重点を置くべきだと思いますか? –
私はあなたに同意しませんが、io.Copyのバージョンが最初になるはずです。私はあなたのコードと推論はどちらも正しいと思う(私はあなたのプログラムに厄介な何かをすることができるが)。私は、「記憶を集める」ことをもっと多くの人々が見ているのを恐れている。 – Dustin