为了账号安全,请及时绑定邮箱和手机立即绑定

哎呀。复制不是在 os 之间复制数据。文件类型

哎呀。复制不是在 os 之间复制数据。文件类型

Go
慕勒3428872 2022-09-26 20:05:45
我正在使用os从代码中创建2个文件。创建函数。我正在将一些字符串写入file1,然后尝试使用io将file1的内容复制到file2。复制,但它不起作用。没有抛出任何错误。谁能告诉我这里发生了什么?谢谢。游乐场 - https://play.golang.org/p/lv_2VfsNIfIpackage mainimport (    "io"    "io/ioutil"    "log"    "os")func main() {    file1, err := os.Create("file1")    if err != nil {        log.Fatal(err)    }    file1.WriteString("Some test data")    defer file1.Close()    defer os.Remove(file1.Name())    log.Println("File1 Data : ", readFile(file1.Name()))    file2, err := os.Create("file2")    if err != nil {        log.Fatal(err)    }    defer file2.Close()    defer os.Remove(file2.Name())    w, err := io.Copy(file2, file1)    if err != nil {        log.Fatal(err)    }    log.Println("Copied", w)    log.Println("File2 Data : ", readFile(file2.Name()))}func readFile(fname string) string {    data, err := ioutil.ReadFile(fname)    if err != nil {        log.Fatal(err)    }    return string(data)}我正在得到的输出,2009/11/10 23:00:00 File1 Data :  Some test data2009/11/10 23:00:00 Copied 02009/11/10 23:00:00 File2 Data : 去
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

您需要使用 查找回 file1 的开头,因为您的文件光标位于写入数据的末尾。file1.Seek(0,0)


...

file1.WriteString("Some test data")

file1.Seek(0,0)

defer file1.Close()

...


查看完整回答
反对 回复 2022-09-26
  • 1 回答
  • 0 关注
  • 74 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信