go:工具函数汇总(不定时更新,还有小福利)

下载网络上延迟很高的图片
  • 福利:全4k免费的图片网站
  • ps:
    1、这网站图片的下载延迟很高,网络差的时候通过浏览器基本下载不下来(乱码),所以我自己写了这个程序下载,很方便。
    2、如果你要通过程序下载的话,一定要点图片两次,找到真正的4k图片链接。

package main

import (
	"bufio"
	"fmt"
	"io"
	"net/http"
	"os"
	"path"
	"sync"
)
var wg sync.WaitGroup

func HandleUrl(imgUrl string)  {
	fileName := path.Base(imgUrl)
	imgPath := "C:\\Users\\63702\\Desktop\\有趣的图\\壁纸\\others\\"
	f, _ := os.Create(imgPath + fileName)
	defer f.Close()

	res, _ := http.Get(imgUrl)
	defer res.Body.Close()
	reader := bufio.NewReaderSize(res.Body, 32 * 1024)
	writer := bufio.NewWriter(f)
	written, _ := io.Copy(writer, reader)

	fmt.Printf(fileName+"下载完毕,大小为:%d\n", written)
	wg.Done()
}
func main() {

	imaUrlSlice :=[]string{
		"",// 这里放图片的下载链接
	}

	for _,i :=range imaUrlSlice{
		go HandleUrl(i)
		wg.Add(1)
	}
	wg.Wait()

}

int to byte
// int to byte
func IntToByte(num int) []byte {
	data := int64(num)
	var buffer bytes.Buffer
	err:=binary.Write(&buffer,binary.BigEndian,data)
	CheckErr("IntToByte",err)
	return buffer.Bytes()
}

byte to int
//  byte to int
func ByteToInt(bys []byte) int {
	byteBuff := bytes.NewBuffer(bys)
	var data int64
	err:=binary.Read(byteBuff, binary.BigEndian, &data)
	CheckErr("BytesToInt",err)
	return int(data)
}
check err
// check err
func CheckErr(pos string, err error)  {
	if err!=nil{
		fmt.Println("error, pos: ",pos,err)
		os.Exit(1)
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值