1 Star 0 Fork 0

叶明志/golang练习

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.go 2.20 KB
一键复制 编辑 原始数据 按行查看 历史
yemingzhi 提交于 2019-07-08 23:09 +08:00 . 文件的读写
package main
import (
"bufio"
"compress/gzip"
"flag"
"fmt"
"io"
"log"
"os"
"strings"
)
func openGzipFile() {
fName := "/home/hu/go/src/hello.txt.gz"
var r *bufio.Reader
fi, err := os.Open(fName)
defer fi.Close()
if err != nil {
fmt.Fprintf(os.Stderr, "%v,Can't open %s:error:%s\n", os.Args[0], fName, err)
os.Exit(1)
}
fz, err := gzip.NewReader(fi)
if err != nil {
fmt.Fprintf(os.Stderr, "open gzip failed,err:%v\n", err)
return
}
r = bufio.NewReader(fz)
for {
line, err := r.ReadString('\n')
if err != nil {
fmt.Println("Done reading file")
os.Exit(0)
}
fmt.Println(line)
}
}
func WriteFile() {
fName := "/home/hu/go/src/world.txt"
outputFile, outputError := os.OpenFile(fName, os.O_WRONLY|os.O_CREATE, 0755)
if outputError != nil {
fmt.Printf("An error occurred with file creation\n")
return
}
defer outputFile.Close()
outputWriter := bufio.NewWriter(outputFile)
outputString := "hello world\n"
for i := 0; i < 10; i++ {
outputWriter.WriteString(outputString)
}
outputWriter.Flush()
}
func copyFile(dstName, srcName string) (written int64, err error) {
src, err := os.Open(srcName)
if err != nil {
fmt.Println("Not found the src file or the file is damaged")
return
}
defer src.Close()
dst, err := os.OpenFile(dstName, os.O_WRONLY|os.O_CREATE, 0644)
if err != nil {
fmt.Println("filed to create the dst file")
return
}
defer dst.Close()
return io.Copy(dst, src)
}
func copyToTerminal() {
r := strings.NewReader("some io.Reader stream to be read.\n")
if _, err := io.Copy(os.Stdout, r); err != nil {
log.Fatal(err)
}
}
func os_Args() {
fmt.Println("the lens of Args", len(os.Args))
for i, v := range os.Args {
fmt.Printf("Args[%d] is %s\n", i, v)
}
}
func useFlag() {
var confPath string
var logLevel int
flag.StringVar(&confPath, "c", "", "Please input confPath")
flag.IntVar(&logLevel, "d", 10, "Please input logLevel")
flag.Parse()
fmt.Println("path:", confPath)
fmt.Println("log level:", logLevel)
}
func main() {
// openGzipFile()
// WriteFile()
// _,err:=copyFile("/home/hu/go/src/target.txt","/home/hu/go/src/hello.txt")
// if err!=nil{
// return
// }
// fmt.Println("Copy done!")
// copyToTerminal()
// os_Args()
useFlag()
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/yemingzhi/GolangLearnPractice1.git
git@gitee.com:yemingzhi/GolangLearnPractice1.git
yemingzhi
GolangLearnPractice1
golang练习
2bf136849dce

搜索帮助