案例场景:创建一个两层目录,并在该目录下创建一个文件,将“Hello World”字符写入该文件,并读取出来。
目标:(1)测试案例是否能执行成功;(2)编译代码成windows与linux两种环境下的可执行文件。
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
// 文件夹名
_dir := "data/test"
exist, err := pathExists(_dir)
if err != nil {
fmt.Printf("get dir error![%v]n", err)
return
}
if exist {
fmt.Printf("has dir![%v]n", _dir)
} else {
fmt.Printf("no dir![%v]n", _dir)
// 创建文件夹
//err := os.Mkdir(_dir, os.ModePerm)
err := os.MkdirAll(_dir, 0666)
if err != nil {
fmt.Printf("mkdir failed![%v]n", err)
} else {
fmt.Printf("mkdir success!n")
fileName := _dir + "/test.txt"
// 创建文件
os.Create(fileName)
// 打开文件
file, _ := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, 0666)
// 当执行完,关闭文件
defer file.Close()
// 写内容到文件中
file.WriteString("Hello World!")
//读取文件
data, _ := ioutil.ReadFile(fileName)
// 打印内容
fmt.Println(string(data))
}
}
}
func pathExists(path string) (bool, error) {
_, err := os.Stat(path)
if err == nil {
return true, nil
}
if os.IsNotExist(err) {
return false, nil
}
return false, err
}
编译成windows环境exe可执行文件过程,打开文件所在目录,在资源路径框中输入cmd,打开cmd命令框,通过“go env”查看当期环境变量,以windows10环境为例,默认为windows环境。
// 配置环境变量
SET CGO_ENABLED=1
SET GOOS=windows
SET GOARCH=amd64
// 编译命令
go build main.go
编译出来后就是一个可执行文件main.exe,可用鼠标双击直接执行,传到其他电脑上操作,依然可执行,不依赖第三方包(不像Java会依赖JDK)。
执行后,在main.exe所在目录下,生成一个data/test/test.txt,并且打开test.txt文件可看到Hello World。
编译成Linux环境可执行文件,此处除编译环境参数外,其他步骤与上面类似,编译参数如下
// 配置参数
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
// 编译命令
go build main.go
编译输出的可执行文件名为main,上传至centos7.x系统,使用 “chmod +x main”添加可执行权限,执行 ” ./main “,输出结果与上述windows结果一样。
备注:上述编译环境所在的操作系统均为Windows10,即在windows10上开发代码,编译输出windows与linux两种环境的可执行文件。
原文地址:https://blog.csdn.net/TankRuning/article/details/122836976
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_12641.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!