IO.COPY():
package main
import (
"fmt"
"io"
"os"
)
func main() {
fileName1 := "D:/goworkspace/src/app03/a.txt"
fileName2 := "ab.txt"
file1, err := os.Open(fileName1)
if err != nil {
fmt.Println(err)
}
file2, err := os.OpenFile(fileName2, os.O_WRONLY|os.O_CREATE, os.ModePerm) // 没有文件则创建新文件
if err != nil {
fmt.Println(err)
}
defer file1.Close()
defer file2.Close()
n, err := io.Copy(file2, file1) // 文件拷贝
if err != nil {
fmt.Println(err)
}
fmt.Println(n)
}
io/ioutil包:
这个方法是一次性读取和写入,不建议操作大文件,容易导致内存溢出
package main
import (
"fmt"
"io/ioutil"
)
func main() {
fileName1 := "D:/goworkspace/src/app03/a.txt"
fileName2 := "ab.txt"
input, err := ioutil.ReadFile(fileName1)
if err != nil {
fmt.Println(err)
}
err = ioutil.WriteFile(fileName2, input, 0644)
if err != nil {
fmt.Println(err)
}
}