本次学习目的:熟悉了解 go 语言特点,实现基本功能。

1、readfile.go

 package main

 import (
"bufio"
"fmt"
"io"
"os"
) func ReadFile(filepath string) []string {
fi, err := os.Open(filepath)
if err != nil {
fmt.Printf("Read file error\n")
}
defer fi.Close() br := bufio.NewReader(fi)
var lineList []string
for {
line, _, err := br.ReadLine()
if err == io.EOF {
break
}
if err != nil {
fmt.Println("Error!")
}
lineList = append(lineList, string(line))
}
return lineList
}

2、main.go 的实现

 package main

 import (
"fmt"
"io"
"net/http"
"os"
"path/filepath"
"strings"
"time"
) var (
url = "http://132.121.00.111:8008/REST/docServiceV2?timestamp=14500903392000&organId=2222&busiType=1&appId=crmlog&staffNo=GZTEST200&filename=JBRZP/20180927/76920180927173700060_713991642.jpg&method=get&password=crmlog1452&latnId=769&signature=731ccc37de5e48dc69bb9ba34b9f3188&version=001"
filename = "JBRZP/20180927/76920180927173700060_713991642.jpg"
str = "latnId=769"
) func checkErr(err error) {
if err != nil {
panic(err)
}
} func CreateDateDir(Path string) string {
foldname := time.Now().Format("")
foldpath := filepath.Join(Path, foldname)
if _, err := os.Stat(foldpath); os.IsNotExist(err) {
os.Mkdir(foldpath, 0777)
os.Chmod(foldpath, 0777)
}
return foldpath
} func downLoad(buf []string, new_url string, filename string, fold string) {
var (
i int
image_url, image_path string
list []string
)
for i = 0; i < len(buf); i++ {
list = strings.Split(buf[i], "/")
image_url = strings.Replace(new_url, filename, buf[i], -1)
res, err := http.Get(image_url)
image_path = filepath.Join(fold, list[len(list)-1])
f, err := os.Create(image_path)
checkErr(err)
io.Copy(f, res.Body)
}
} func main() {
var (
new_url, latnID, newpath string
)
fmt.Println("请输入区号(如广州:200): ")
fmt.Scanln(&latnID)
latnID = "latnID=" + latnID
path, err := os.Getwd()
checkErr(err)
newpath = CreateDateDir(path)
data_path := path + "\\data.txt"
buf := ReadFile(data_path)
new_url = strings.Replace(url, str, latnID, -1)
downLoad(buf, new_url, filename, newpath)
fmt.Println("GetImage Success!")
}

学习参考:

1、 go 语言学习手册 : https://cloud.tencent.com/developer/doc/1101

2、 go 语言开发 IDE 推荐:LiteIDE

3、 go 开发环境配置参考:https://blog.csdn.net/meiwei_1/article/details/79193853

05-11 17:06
查看更多