技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

io.Copy【Go】

Reader経由でファイルをコピーして、Writerを通して出力します。

func pict(w http.ResponseWriter, req *http.Request) {    // HandlerFunc()の第2引数に指定するため、この形式
    f, err := os.Open("pict.png")    // ファイルを開き、Readerが使える状態にして返す
    if err != nil {
        log.Fatal(err)
    }
    defer f.Close()
    io.Copy(w, f)    // http.ResponseWriterに読み込んだファイルの内容を書き込む

}

func main() {
    http.HandleFunc("/pict", pict)    // 「/pict」にアクセスしたらpictを実行
    http.ListenAndServe(":8080", nil)
}