我一直在尝试自己学习Go,但是在尝试读取和写入普通文件时遇到了麻烦。我可以达到最大范围inFile, _ := os.Open(INFILE, 0, 0),但是实际上获取文件的内容没有任何意义,因为read函数将a[]byte作为参数。func (file *File) Read(b []byte) (n int, err Error)
3 回答
莫回无
TA贡献1865条经验 获得超7个赞
使用 io.Copy
package main
import (
"io"
"log"
"os"
)
func main () {
// open files r and w
r, err := os.Open("input.txt")
if err != nil {
panic(err)
}
defer r.Close()
w, err := os.Create("output.txt")
if err != nil {
panic(err)
}
defer w.Close()
// do the actual work
n, err := io.Copy(w, r)
if err != nil {
panic(err)
}
log.Printf("Copied %v bytes\n", n)
}
如果您不想重新发明轮子,theio.Copy和io.CopyN可能会为您服务。如果您检查io.Copy函数的源代码,那么它只是Go库中打包的Mostafa解决方案之一(实际上是“基本”解决方案)。不过,他们使用的缓冲区要比他大得多。
- 3 回答
- 0 关注
- 225 浏览
添加回答
举报
0/150
提交
取消