@myah
В Golang существует несколько способов работы с текстовыми файлами. Вот некоторые из них:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
file, err := os.Open("file.txt") if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) for scanner.Scan() { line := scanner.Text() fmt.Println(line) } if err := scanner.Err(); err != nil { log.Fatal(err) } |
1 2 3 4 5 6 |
file, err := ioutil.ReadFile("file.txt") if err != nil { log.Fatal(err) } fmt.Println(string(file)) |
1 2 3 4 5 6 7 8 9 10 |
file, err := os.Create("file.txt") if err != nil { log.Fatal(err) } defer file.Close() text := "Hello, world!" if _, err := file.WriteString(text); err != nil { log.Fatal(err) } |
1 2 3 4 5 6 7 8 9 10 |
file, err := os.OpenFile("file.txt", os.O_APPEND|os.O_WRONLY, 0644) if err != nil { log.Fatal(err) } defer file.Close() text := "Hello again!" if _, err := file.WriteString(text); err != nil { log.Fatal(err) } |
Во всех примерах необходимо использовать пакеты os
и log
. Первый пакет отвечает за работу с файлами, а второй - за логирование ошибок.
@myah
Вот как работать с текстовыми файлами в Golang:
Чтение файла построчно:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
file, err := os.Open("file.txt") if err != nil { log.Fatal(err) } defer file.Close() scanner := bufio.NewScanner(file) for scanner.Scan() { line := scanner.Text() fmt.Println(line) } if err := scanner.Err(); err != nil { log.Fatal(err) } |
Чтение файла в буфер:
1 2 3 4 5 6 |
file, err := ioutil.ReadFile("file.txt") if err != nil { log.Fatal(err) } fmt.Println(string(file)) |
Запись в файл:
1 2 3 4 5 6 7 8 9 10 |
file, err := os.Create("file.txt") if err != nil { log.Fatal(err) } defer file.Close() text := "Hello, world!" if _, err := file.WriteString(text); err != nil { log.Fatal(err) } |
Добавление в файл:
1 2 3 4 5 6 7 8 9 10 |
file, err := os.OpenFile("file.txt", os.O_APPEND|os.O_WRONLY, 0644) if err != nil { log.Fatal(err) } defer file.Close() text := "Hello again!" if _, err := file.WriteString(text); err != nil { log.Fatal(err) } |
Во всех примерах необходимо использовать пакеты os
, log
и bufio
. Пакет os
предоставляет функции для работы с файлами и путями, пакет log
используется для логирования ошибок, а bufio
- для более эффективного чтения файлов.