Функция os.Open

Функция os.Open открывает файл для чтения. В качестве единственного параметра она принимает путь к файлу в виде строки. При успешном открытии функция возвращает указатель на os.File и nil в качестве ошибки. Если файл не найден или нет прав доступа, возвращается ошибка типа *fs.PathError.

Синтаксис

gofunc Open(name string) (*os.File, error)

Пример

Откроем файл "example.txt" для чтения и выведем его имя:

gopackage main

import (
  "fmt"
  "os"
)

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

  fmt.Println(file.Name())
}

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

go"example.txt"

Пример

Попробуем открыть несуществующий файл и обработаем ошибку:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  file, err := os.Open("missing.txt")
  if err != nil {
    fmt.Printf("Error: %v\n", err)
    return
  }
  defer file.Close()

  fmt.Println("File opened successfully")
}

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

go"Error: open missing.txt: no such file or directory"

Пример

Прочитаем содержимое открытого файла с использованием os.File и выведем его в консоль:

gopackage main

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

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

  data, err := io.ReadAll(file)
  if err != nil {
    fmt.Println(err)
    return
  }

  fmt.Printf("File content: %s\n", string(data))
}

Результат выполнения кода (если файл содержит текст "Hello, World!"):

go"File content: Hello, World!"

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

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