// ...аналогично с записью. func FWrite(filename string, data []byte) { openMode := os.O_WRONLY | os.O_CREATE | os.O_TRUNC file, openFail := os.OpenFile(filename, openMode, 0644) defer file.Close() assert.Nil(openFail) bytesWrote, writeFail := file.Write(data) assert.Nil(writeFail) assert.True(bytesWrote == len(data), "Writing into file was interrupted.") }
// Поскольку критически важен полный контроль над считыванием файла исходного // кода, готовые решения типа ioutil.ReadFile не используются... func FRead(filename string) []byte { file, openFail := os.Open(filename) defer file.Close() assert.Nil(openFail) fStat, statFail := file.Stat() assert.Nil(statFail) fSize := fStat.Size() buffer := make([]byte, fSize) bytesRead, readFail := file.Read(buffer) assert.Nil(readFail) assert.True(int64(bytesRead) == fSize, "Failed to read file completely.") return buffer }