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

我正在使用os从代码中创建2个文件。创建函数。


我正在将一些字符串写入file1,然后尝试使用io将file1的内容复制到file2。复制,但它不起作用。


没有抛出任何错误。谁能告诉我这里发生了什么?谢谢。


游乐场 - https://play.golang.org/p/lv_2VfsNIfI


package main


import (

    "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 data

2009/11/10 23:00:00 Copied 0

2009/11/10 23:00:00 File2 Data : 


慕勒3428872
浏览 75回答 1
1回答

喵喔喔

您需要使用 查找回 file1 的开头,因为您的文件光标位于写入数据的末尾。file1.Seek(0,0)...file1.WriteString("Some test data")file1.Seek(0,0)defer file1.Close()...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go