go学习 day242 文件操作
案例:读取文件内容
package main
import (
"fmt"
"os"
)
func main() {
// 打开文件
file, err := os.Open("G:\\test\\test.txt")
if err != nil {
fmt.Println("open file err=",err)
}
// 打印文件
fmt.Printf("file=%v",file)
// 关闭文件
err = file.Close()
if err != nil {
fmt.Println("关闭文件错误:",err)
}
}
案例:将一个文件的内容,写入到另一个文件。文件已存在
package main
import (
"fmt"
"io/ioutil"
)
func main() {
file1path:="G:\\test\\test1.txt"
file2path:="G:\\test\\test4.txt"
date,err := ioutil.ReadFile(file1path)
if err != nil {
fmt.Println("读取文件失败:",err)
return
}
err1 := ioutil.WriteFile(file2path,date,0644)
if err1 != nil {
fmt.Println("写入文件报错:",err1)
}
}
案例:将E盘下的2.png拷贝到G盘下为222.png。带缓存
package main
import (
"bufio"
"fmt"
"io"
"os"
)
/*
copy 函数是io包提供的
拷贝文件:
*/
func CopyFile(dstFileName string,srcFileName string) (witten int64,err error) {
srcfile,err := os.Open(srcFileName)
if err != nil {
fmt.Println("打开文件错误:",err)
}
defer srcfile.Close()
read := bufio.NewReader(srcfile)
distfile,err:= os.OpenFile(dstFileName,os.O_WRONLY|os.O_CREATE,0644,)
if err != nil {
fmt.Printf("打开文件报错了:",err)
return
}
write := bufio.NewWriter(distfile)
defer distfile.Close()
return io.Copy(write,read)
}
func main() {
secfile := "E:\\2.png"
dstfile := "G:\\222.png"
_,err:= CopyFile(dstfile,secfile)
if err == nil {
fmt.Printf("拷贝完成\n")
} else {
fmt.Println("拷贝错误:",err)
}
fmt.Println()
}
os.args 是一个string的切片,用来存储所有命令行参数
点击查看代码
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("命令行的参数有:",len(os.Args))
//遍历os.args切片,就可以得到所有的命令行输入参数值
for i,v := range os.Args {
fmt.Printf("args[%v]=%v\n",i,v)
}
}
flag包解析命令行参数
点击查看代码
package main
import (
"flag"
"fmt"
)
func main() {
// 定义几个变量,用于接收命令行参数值
var user string
var pwd string
var host string
var port int
// &user 就是接收用户命令行中输入的 -u 后面的参数值
// "u" 就是 -u 指定参数
// "" 默认值
// "" 说明
flag.StringVar(&user,"u","root","用户名默认为root")
flag.StringVar(&pwd,"p","","密码默认为空")
flag.StringVar(&host,"h","127.0.0.1","主机名默认为本机")
flag.IntVar(&port,"P",3306,"端口默认为3306")
// 调用该方法
flag.Parse()
fmt.Printf("user = %v \npwd = %v \nhost = %v \nport = %v",
user,pwd,host,port)
}
本文来自博客园,作者:六月OvO,转载请注明原文链接:https://www.cnblogs.com/chenlifan/p/17301985.html