РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
524 of 1593 menu

Метод os.File.Write

Метод Write выполняет запись данных в файл, представленный структурой os.File. На вход метод принимает срез байтов, который требуется записать. Возвращает количество байтов, которое удалось записать, и ошибку, если она возникла. Важно понимать, что метод записывает данные ровно так, как они передаются, без добавления автоматических разделителей или символов перевода строки.

Синтаксис

func (f *File) Write(b []byte) (n int, err error)

Пример

Давайте откроем или создадим файл и запишем в него простую текстовую строку в виде байтового среза:

package main import ( "fmt" "os" ) func main() { file, err := os.Create("example.txt") if err != nil { fmt.Println("Ошибка создания файла:", err) return } defer file.Close() data := []byte("Hello, Go!") n, err := file.Write(data) if err != nil { fmt.Println("Ошибка записи:", err) return } fmt.Printf("Записано байт: %d\n", n) }

Результат выполнения кода:

"Записано байт: 10"

Пример

Попробуем выполнить последовательную запись нескольких фрагментов данных в один и тот же файл. По умолчанию запись происходит с начала файла, но можно использовать метод Seek для управления позицией:

package main import ( "fmt" "os" ) func main() { file, err := os.Create("data.txt") if err != nil { fmt.Println("Ошибка:", err) return } defer file.Close() first := []byte("Первая строка\n") second := []byte("Вторая строка\n") file.Write(first) file.Write(second) fmt.Println("Данные успешно записаны") }

Результат выполнения кода:

"Данные успешно записаны"

Пример

Рассмотрим случай, когда происходит попытка записи в файл, открытый только для чтения. Метод вернёт ошибку, которую следует обработать:

package main import ( "fmt" "os" ) func main() { file, err := os.OpenFile("readonly.txt", os.O_RDONLY, 0644) if err != nil { fmt.Println("Ошибка открытия:", err) return } defer file.Close() data := []byte("попытка записи") _, err = file.Write(data) if err != nil { fmt.Println("Ошибка записи:", err) } }

Результат выполнения кода:

"Ошибка записи: write readonly.txt: bad file descriptor"

Смотрите также

  • метод os.File.WriteString,
    позволяющий записывать строковые данные непосредственно
  • функцию os.Create,
    создающую файл для записи
  • метод os.File.Read,
    предназначенный для чтения данных из файла
  • метод os.File.Sync,
    принудительно сбрасывающий буферы данных на диск
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить