我一直在嘗試自己學習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 關注
- 254 瀏覽
添加回答
舉報
0/150
提交
取消