2013-06-25 17 views

答えて

8

ファイルは、最も簡単な解決策は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) 

あなたはどちらの場合も、関連するエラー処理を追加する必要があります。

+0

私は本当に 'ioutil.ReadAll'を否定したいと思います。あなたがうまく動作するアプリケーションでやりたいことはほとんどありません。 – Dustin

+0

@Dustinファイルが十分に小さい場合は、問題ではないと思います。私はこの点に重点を置くべきだと思いますか? –

+0

私はあなたに同意しませんが、io.Copyのバージョンが最初になるはずです。私はあなたのコードと推論はどちらも正しいと思う(私はあなたのプログラムに厄介な何かをすることができるが)。私は、「記憶を集める」ことをもっと多くの人々が見ているのを恐れている。 – Dustin

関連する問題