我试图弹出文件的第一行,从而逐一减少文件行。 我去除第一线实现如下从Golang的文本文件中删除第一行
type FS struct {
...
File *os.File
}
//File creation ok...
func (fs *Fs) pop() []byte {
var buf []string
scanner := bufio.NewScanner(fs.File)
//Reading lines
for scanner.Scan() {
line := scanner.Text()
buf = append(buf, line)
}
//Writing from second line on the same file
for s := 1; s < len(buf); s++ {
fs.File.WriteString(fmt.Println(buf[s]))
}
//Commit changes
fs.File.Sync()
fs.File.Close()
return []byte(buf[0])
}
我得到预期的字符串,但永远不会改变的文件返回[]字节。 我在这里错过了什么?
首先,不要忽略错误。其次,你不是在你认为自己的位置写信给该文件。 –
嗨吉姆,谢谢你,我可能错过了'fs.File.Seek(0,0)',但我仍然不会出现任何错误... –
你忽略了由'File.WriteString返回的错误'。 (另外,'ScanLines'函数去掉换行符,但是如果文件没有改变,你还没有写信给它) –