我试图弹出文件的第一行,从而逐一减少文件行。 我去除第一线实现如下从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]) 
} 

我得到预期的字符串,但永远不会改变的文件返回[]字节。 我在这里错过了什么?

+3

首先,不要忽略错误。其次,你不是在你认为自己的位置写信给该文件。 –

+0

嗨吉姆,谢谢你,我可能错过了'fs.File.Seek(0,0)',但我仍然不会出现任何错误... –

+3

你忽略了由'File.WriteString返回的错误'。 (另外,'ScanLines'函数去掉换行符,但是如果文件没有改变,你还没有写信给它) –