go 1.8
逐行读取并比较
func readOnLine(filename string, text string) bool {
fi, err := os.Open(filename)
check(err)
defer fi.Close()
br := bufio.NewReader(fi)
for {
a, _, c := br.ReadLine()
if c == io.EOF {
return false
fmt.Println("不存在", text)
}
if string(a) == text {
fmt.Println("存在", text)
break
}
}
return true
}
文件末尾追加
func fileAppend(filename string, text string) {
f, err := os.OpenFile(filename, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
check(err)
defer f.Close()
n, err := f.WriteString(text)
_ = n
check(err)
}
判断文件存在
/*
param:
filename 文件名
return:
true 存在
false 不存在
*/
func checkFileIsExist(filename string) bool {
var exist = true
if _, err := os.Stat(filename); os.IsNotExist(err) {
exist = false
}
return exist
}
seek
fd, err := os.Open("test")
check(err)
defer fd.Close()
step := int64(2)
b := make([]byte, 5)
for {
n, err := fd.Read(b)
_ = n
if err == io.EOF {
break
}
check(err)
fmt.Println(string(b))
fd.Seek(step, os.SEEK_CUR)
}