Как записать файл в Golang: полное руководство

В этой статье объясняется, как написать файл в Golang, используя различные методы и пакеты. Вы узнаете, как создавать, открывать, записывать и закрывать файлы в Go.

Пример

package main

import (
  "fmt"
  "io"
  "log"
  "os"
)

func main() {
  // Define the file path
  filePath := "my_data_file.txt"

  // Create or truncate the file
  file, err := os.Create(filePath)
  if err != nil {
    log.Fatalf("Error creating file: %v", err)
  }
  defer file.Close()

  // Define the data to be written to the file
  data := "Hello, Golang!\n"

  // Write the data to the file
  n, err := io.WriteString(file, data)
  if err != nil {
    log.Fatalf("Error writing to file: %v", err)
  }

  fmt.Printf("Successfully wrote %d bytes to %s\n", n, filePath)
}

Выход

Successfully wrote 15 bytes to my_data_file.txt

В этом коде мы определили путь к файлу как example.txt и использовали функцию “os.Create()” для создания или обрезать файл. Затем мы определили данные, которые будут записаны в файл, как строковые данные.

 

На следующем шаге мы использовали функцию “io.WriteString()” для записи данных в файл. Наконец, мы печатаем сообщение об успехе, указывающее количество байтов, записанных в файл.

Перейдите к записи в файл с помощью File.Write/File.WriteAt.

Чтобы записать в файл, вы можете использовать функцию os.Create() для создания нового файла, а затем вызвать < /span> возвращаемого *os.File объект.WriteAt() или Write()

package main

import (
  "log"
  "os"
)

func main() {
  // Create a new file
  file, err := os.Create("test.txt")
  if err != nil {
    log.Fatal(err)
  }
  defer file.Close()

  // Write some text to the file
  byteSlice := []byte("Hello, World!")
  offset := int64(5) // Start writing at position 5
  bytesWritten, err := file.WriteAt(byteSlice, offset)
  if err != nil {
    log.Fatal(err)
  }
  log.Printf("Wrote %d bytes.\n", bytesWritten)
}

Выход

2023/07/14 16:34:56 Wrote 13 bytes.

Перейдите к записи в файл с помощью ioutil.WriteFile.

В Go функция ioutil.WriteFile() — это удобный способ записи фрагмента байта непосредственно в файл. Он обрабатывает открытие, запись и закрытие файла за один вызов функции.

package main

import (
  "io/ioutil"
  "log"
)

func main() {
  // Define the data to write to the file.
  data := []byte("Hello, World!")

  // Write the data to the file.
  err := ioutil.WriteFile("text.txt", data, 0644)
  if err != nil {
    log.Fatal(err)
  }

  log.Println("File written successfully")
}

Выход

2023/07/14 16:36:42 File written successfully

#go  #golang 

Как записать файл в Golang: полное руководство
1.10 GEEK