Метод os.File.WriteString

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

Синтаксис

gon, err := file.WriteString(str)

Пример

Давайте откроем файл для записи и запишем в него строку "Hello, Go!":

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Create("example.txt")
  if err != nil {
    fmt.Println("Error creating file:", err)
    return
  }
  defer file.Close()

  n, err := file.WriteString("Hello, Go!")
  if err != nil {
    fmt.Println("Error writing to file:", err)
    return
  }

  fmt.Printf("Written %d bytes\n", n)
}

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

go"Written 10 bytes"

Пример

Теперь запишем в файл несколько строк, используя символы переноса:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Create("data.txt")
  if err != nil {
    fmt.Println("Error creating file:", err)
    return
  }
  defer file.Close()

  data := "Line 1\nLine 2\nLine 3\n"
  n, err := file.WriteString(data)
  if err != nil {
    fmt.Println("Error writing to file:", err)
    return
  }

  fmt.Printf("Written %d bytes\n", n)
}

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

go"Written 18 bytes"

Пример

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

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Open("existing.txt")
  if err != nil {
    fmt.Println("Error opening file:", err)
    return
  }
  defer file.Close()

  _, err = file.WriteString("New data")
  if err != nil {
    fmt.Println("Error:", err)
  }
}

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

go"Error: write existing.txt: bad file descriptor"

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

  • метод os.File.Write,
    который записывает срез байт в файл
  • метод os.File.Read,
    который читает данные из файла в срез байт
  • функцию os.WriteFile,
    которая записывает данные в файл одним вызовом
  • метод os.File.Close,
    который закрывает открытый файл и освобождает ресурсы