Рассмотрим определения Открыть и Запись :
func Open(name string) (*File, error)
func (f *File) Write(b []byte) (n int, err error)
Итак, строка:
fileACopy, err := os.Open("./fileACopy.txt")
Дает вам fileACopy
(a *File
), а затем вы передаете это в качестве аргумента append.Write(fileACopy)
. В соответствии с приведенными выше определениями append.Write
занимает []byte
, и вы пытаетесь передать ему что-то другое (fileACopy
, *File
), поэтому возникает ошибка «Невозможно использовать« fileACopy »(тип * File) в качестве типа [] byte ".
Простейший способ добиться того, чего вы хотите, - это, вероятно, использовать io.Copy :
Copy(dst Writer, src Reader) (written int64, err error)
В вашем случае io.Copy(append, fileACopy)
должен добиться цели , Менее эффективная альтернатива - читать содержимое файла, используя ioutil.ReadAll (среди других опций), что даст вам []byte
, который вы затем можете передать append.Write
(это может не сработать) а также потому, что весь файл читается в память, а затем записывается).