概要:
文件的读写操作,各种姿势的,比如直接读写,带缓存的读写,利用io/ioutil包 等。
packag中包的使用,以及加深对package的理解。
命令行参数原始处理以及利用flag包来处理,同时,还可以利用flag包读取配置文件,然后进行初始化参数配置等。
下面正文:
一、打开压缩文件:
文件直接读/带缓存的读/ioustio
package main
import (
"bufio"
"compress/gzip"
"fmt"
"os"
)
func main() {
fName := "MyFile.gz"
var r *bufio.Reader
fi, err := os.Open(fName)
defer fi.Close()
if err != nil {
fmt.Fprintf(os.Stderr, "%v,Cant open %s:error:%s \n", os.Args[0], fName, err)
os.Exit(0)
}
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)
}
}
文件写入: op.OpenFile 这个可以写的。
func OpenFile(name string, flag int, perm FileMode) (*File, error)
const (
// Exactly one of O_RDONLY, O_WRONLY, or O_RDWR must be specified.
O_RDONLY int = syscall.O_RDONLY // open the file read-only.
O_WRONLY int = syscall.O_WRONLY // open the file write-only.
O_RDWR int = syscall.O_RDWR // open the file read-write.
// The r