golang實現檔案複製

2022-09-18 07:06:21 字數 1327 閱讀 8367

在io包中主要是操作流的一些方法,今天主要學習一下。

它的原理都是通過程式,從原始檔讀取檔案中的資料,在寫出到目標檔案裡

io包下的read()和write()方法實現

通過io包下的read()和write()方法,邊讀邊寫,就能實現複製。這個方法是按塊讀取檔案,塊的大小也會影響到程式的效能

func file1(srcfile, destfile string) (int, error) 

file2, err := os.openfile(destfile, os.o_wronly|os.o_create, os.modeperm)

if err != nil

defer file1.close()

defer file2.close()

// 拷貝資料

bs := make(byte, 1024, 1024)

n := -1

total := 0

for else if err != nil

total += n

file2.write(bs[:n])

}return total, nil

}

io包下的copy()方法實現
func file2(srcfile, destfile string) (int64, error) 

file2, err := os.openfile(destfile, os.o_wronly|os.o_create, os.modeperm)

if err != nil

defer file1.close()

defer file2.close()

return io.copy(file2, file1)

}

ioutil包中的writefile()和readfile()實現
但由於使用一次性讀取檔案,再一次性寫入檔案的方式,所以該方法不適用於大檔案,容易記憶體溢位。

func file3(srcfile, destfile string) (int, error) 

err = ioutil.writefile(destfile, input, 0644)

if err != nil

return len(input), nil

}

Python實現檔案複製

如下 encoding utf 8 本程式實現檔案複製功能 source file open d.txt r encoding utf 8 dst file open e bat.txt a encoding utf 8 a表示追加,如果沒有該檔案則新建它 while true content so...

實現目錄拷貝 複製目錄 複製檔案

include include include include include include include ifndef debug define pdebug fmt,args.do while 0 else define pdebug fmt,args.printf s d fmt,func...

Linux C 檔案複製的實現

參考網上的 整理的比較完整的,關於使用read 和write 函式,實現檔案拷貝的 執行結果 開啟原始檔 if from fd open argv 1 o rdonly 1 建立目標檔案 if to fd open argv 2 o wronly o creat,s irusr s iwusr 1 ...