Функция os.OpenFile
Функция os.OpenFile открывает файл по указанному пути с заданными флагами режима доступа и правами доступа. Она возвращает указатель на os.File и ошибку. Первым параметром функция принимает путь к файлу, вторым - флаги режима доступа, третьим - права доступа к файлу (режим FileMode). Функция предоставляет полный контроль над тем, как открывается файл, позволяя, например, открыть файл для чтения и записи, создать его, если он не существует, или обрезать при открытии.
Синтаксис
os.OpenFile(name string, flag int, perm FileMode) (*File, error)
Пример
Давайте откроем файл для чтения и записи. Если файл не существует, он будет создан с правами доступа 0644:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.OpenFile("example.txt", os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
fmt.Println("File opened successfully")
}
Результат выполнения кода:
"File opened successfully"
Пример
Давайте откроем файл только для записи. Если файл существует, он будет обрезан до нулевой длины:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.OpenFile("example.txt", os.O_WRONLY|os.O_TRUNC, 0644)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
fmt.Println("File opened for writing")
}
Результат выполнения кода:
"File opened for writing"
Пример
Давайте откроем файл для дозаписи данных в конец файла:
package main
import (
"fmt"
"os"
)
func main() {
file, err := os.OpenFile("example.txt", os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
_, err = file.WriteString("Appending new line\n")
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Data appended successfully")
}
Результат выполнения кода:
"Data appended successfully"
Смотрите также
-
функцию
os.Open,
которая открывает файл только для чтения -
функцию
os.Create,
которая создает или обрезает файл для записи -
функцию
os.ReadFile,
которая читает содержимое файла целиком -
функцию
os.WriteFile,
которая записывает данные в файл целиком