Функция os.WriteFile

Функция os.WriteFile записывает байтовый срез в файл с указанными правами доступа. Первым параметром она принимает путь к файлу, вторым - данные для записи в виде среза байтов ([]byte), третьим - права доступа (os.FileMode). Если файл не существует, функция создает его с указанными правами. Если файл существует, он будет усечен до нулевой длины перед записью новых данных. В случае успешной записи функция возвращает nil, а при возникновении ошибки - объект ошибки.

Синтаксис

goos.WriteFile(filename, data, perm)

Пример

Давайте запишем строку "Hello, World!" в файл с именем "example.txt" с правами доступа 0644:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  data := []byte("Hello, World!")
  err := os.WriteFile("example.txt", data, 0644)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println("File written successfully")
}

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

go"File written successfully"

Пример

Давайте запишем данные в файл и проверим, что они были записаны правильно, прочитав их с помощью функции os.ReadFile:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  content := []byte("Go programming language")
  err := os.WriteFile("test.txt", content, 0644)
  if err != nil {
    fmt.Println(err)
    return
  }

  readContent, err := os.ReadFile("test.txt")
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(readContent))
}

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

go"Go programming language"

Пример

Давайте попробуем записать данные в файл, находящийся в несуществующей директории, чтобы увидеть, как функция обрабатывает ошибки:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  data := []byte("test data")
  err := os.WriteFile("/nonexistent/dir/file.txt", data, 0644)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println("Success")
}

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

go"open /nonexistent/dir/file.txt: no such file or directory"

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

  • функцию os.ReadFile,
    которая считывает данные из файла в срез байтов
  • функцию os.Open,
    которая открывает файл для чтения
  • функцию os.OpenFile,
    которая открывает файл с указанным режимом доступа
  • функцию os.Create,
    которая создает новый файл или усекает существующий