在io包中主要是操作流的一些方法,今天主要學習一下。它的原理都是通過程式,從原始檔讀取檔案中的資料,在寫出到目標檔案裡
io包下的read()和write()方法實現
通過io包下的read()和write()方法,邊讀邊寫,就能實現複製。這個方法是按塊讀取檔案,塊的大小也會影響到程式的效能io包下的copy()方法實現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
}
ioutil包中的writefile()和readfile()實現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)
}
但由於使用一次性讀取檔案,再一次性寫入檔案的方式,所以該方法不適用於大檔案,容易記憶體溢位。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 ...