本次学习目的:熟悉了解 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

go 语言学习笔记(一)的更多相关文章

  1. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  2. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  3. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  4. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  5. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  6. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  7. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  8. Go语言学习笔记十一: 切片(slice)

    Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...

  9. Go语言学习笔记十: 结构体

    Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...

  10. Go语言学习笔记九: 指针

    Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...

随机推荐

  1. Ex0203

    游戏 –     这些软件的开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户的现金么?还是别的? 朋友们都在玩,我在试玩的时候也觉得很不错:游戏基本上的目标都 ...

  2. jquery 蔚蓝网

    $(document).ready(function(){ //提交表单 $("#registerBtn").click(function(){ var email=documen ...

  3. 左耳听风-ARTS-第4周(2019/4/21-2019/4/27)

    Algorithm 本周的算法题是删除已排序数据中的重复数字(https://leetcode.com/problems/remove-duplicates-from-sorted-array/).这 ...

  4. FirewallD 快速使用文档

    FirewallD简介 FirewallD是CentOS7系列上代替iptables管理netfilter的配置工具,提供图形化和命令行,使用python开发(新版中计划使用c++重写),提供图形化和 ...

  5. Ansible 安装与配置(一)

    公司大概有200多云主机需要进行管理,但是如果通过手工管理费时还累最终结果也容易出错,所以考虑通过自动化的方式来管理云主机,目前开源的自动化工具,大家用的比较多的有Ansible和Saltstack这 ...

  6. Visual Studio安装Visual Assist的办法(兼容VS2010至VS2017)

    Visual Assist可以说是一个码代码的高效帮手,有了它,敲起代码速度杠杠的,但是有时候安装破解老是出问题,这一次,我自己尝试了几次,跟着网上的教程做了做,改了改,结合之前安装的经验,最后总算安 ...

  7. 记一次nmap扫描信息收集过程

    1.首先扫描网段内存活主机 nmap -sP 192.168.1.1-254 2.获取到存活主机后,开始进行端口扫描 nmap -p1-1000 192.168.1.66 可得到端口状态: filte ...

  8. 关于jpa

    mappedBy 如果不写,会多生成一张id关联表,无论是一对多还是多对多,关联表名为两张原始表连接起来,顺序以字母英文排序 名字为类名的小写复数 被标记的类作为被维护者,写入时,需要以维护者repo ...

  9. Ubuntu 16.04 安装Go 1.9.2

    系统环境 Ubuntu: 16.04 Go: 1.9.2 安装步骤 $ curl -O https://storage.googleapis.com/golang/go1.9.linux-amd64. ...

  10. 2016-08-15T16:00:00.000Z 格式转换成yyyy-MM-dd HH:mm:ss格式

    public static String UTCStringtODefaultString(String UTCString) { try { if (CommonUtils.notNullAndEm ...