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

Функция os.CreateTemp

Функция os.CreateTemp создает новый временный файл в системной директории для временных файлов или в указанной пользователем директории. В первый параметр передается путь к директории, где будет создан файл (если передать пустую строку, файл будет создан в стандартной системной временной директории). Во второй параметр передается шаблон имени файла, который может содержать символ *, заменяемый на случайный суффикс для обеспечения уникальности. Функция возвращает указатель на os.File и ошибку, если создать файл не удалось. Созданный файл открывается в режиме чтения и записи.

Синтаксис

os.CreateTemp(dir, pattern)

Пример

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

package main import ( "fmt" "os" ) func main() { file, err := os.CreateTemp("", "temp-*.txt") if err != nil { fmt.Println(err) return } defer os.Remove(file.Name()) defer file.Close() fmt.Println(file.Name()) }

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

"/tmp/temp-1234567890.txt"

Пример

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

package main import ( "fmt" "os" ) func main() { dir := "./tmp" file, err := os.CreateTemp(dir, "app-*.log") if err != nil { fmt.Println(err) return } defer os.Remove(file.Name()) defer file.Close() fmt.Println(file.Name()) }

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

"tmp/app-5678901234.log"

Пример

Давайте запишем данные во временный файл и прочитаем их обратно:

package main import ( "fmt" "os" ) func main() { file, err := os.CreateTemp("", "data-*.txt") if err != nil { fmt.Println(err) return } defer os.Remove(file.Name()) defer file.Close() content := []byte("hello world") _, err = file.Write(content) if err != nil { fmt.Println(err) return } err = file.Sync() if err != nil { fmt.Println(err) return } file.Seek(0, 0) res := make([]byte, len(content)) file.Read(res) fmt.Println(string(res)) }

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

"hello world"

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

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