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

Метод os.File.Sync

Метод os.File.Sync принудительно записывает все буферизированные данные файла на диск. Это гарантирует, что данные, записанные в файл, физически сохранены на постоянном носителе, а не находятся в буферах операционной системы. Метод вызывается для объекта файла, полученного при открытии или создании файла. Он возвращает ошибку, если операция синхронизации не удалась.

Синтаксис

err := file.Sync()

Пример

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

package main import ( "fmt" "os" ) func main() { // Create or open file for writing file, err := os.Create("example.txt") if err != nil { fmt.Println("Error creating file:", err) return } defer file.Close() // Write data to file _, err = file.WriteString("Hello, World!") if err != nil { fmt.Println("Error writing to file:", err) return } // Flush buffered data to disk err = file.Sync() if err != nil { fmt.Println("Error syncing file:", err) return } fmt.Println("Data successfully written and synced to disk") }

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

"Data successfully written and synced to disk"

Пример

Покажем ситуацию, когда синхронизация завершается с ошибкой, например, при попытке синхронизации файла, который уже закрыт:

package main import ( "fmt" "os" ) func main() { // Create a file file, err := os.Create("test.txt") if err != nil { fmt.Println("Error creating file:", err) return } // Write some data _, err = file.WriteString("some data") if err != nil { fmt.Println("Error writing to file:", err) return } // Close the file err = file.Close() if err != nil { fmt.Println("Error closing file:", err) return } // Try to sync the closed file err = file.Sync() if err != nil { fmt.Println("Sync error:", err) return } fmt.Println("Sync successful") }

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

"Sync error: file already closed"

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

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