Функция os.WriteFile
Функция os.WriteFile записывает байтовый срез в файл
с указанными правами доступа. Первым параметром она принимает
путь к файлу, вторым - данные для записи в виде среза байтов
([]byte), третьим - права доступа (os.FileMode).
Если файл не существует, функция создает его с указанными
правами. Если файл существует, он будет усечен до нулевой
длины перед записью новых данных. В случае успешной записи
функция возвращает nil, а при возникновении ошибки -
объект ошибки.
Синтаксис
os.WriteFile(filename, data, perm)
Пример
Давайте запишем строку "Hello, World!" в файл с именем "example.txt" с правами доступа 0644:
package main
import (
"fmt"
"os"
)
func main() {
data := []byte("Hello, World!")
err := os.WriteFile("example.txt", data, 0644)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("File written successfully")
}
Результат выполнения кода:
"File written successfully"
Пример
Давайте запишем данные в файл и проверим, что они были записаны
правильно, прочитав их с помощью функции os.ReadFile:
package main
import (
"fmt"
"os"
)
func main() {
content := []byte("Go programming language")
err := os.WriteFile("test.txt", content, 0644)
if err != nil {
fmt.Println(err)
return
}
readContent, err := os.ReadFile("test.txt")
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(readContent))
}
Результат выполнения кода:
"Go programming language"
Пример
Давайте попробуем записать данные в файл, находящийся в несуществующей директории, чтобы увидеть, как функция обрабатывает ошибки:
package main
import (
"fmt"
"os"
)
func main() {
data := []byte("test data")
err := os.WriteFile("/nonexistent/dir/file.txt", data, 0644)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Success")
}
Результат выполнения кода:
"open /nonexistent/dir/file.txt: no such file or directory"
Смотрите также
-
функцию
os.ReadFile,
которая считывает данные из файла в срез байтов -
функцию
os.Open,
которая открывает файл для чтения -
функцию
os.OpenFile,
которая открывает файл с указанным режимом доступа -
функцию
os.Create,
которая создает новый файл или усекает существующий