Как работать с текстовыми файлами в Golang?

Пользователь

от myah , в категории: Общие вопросы , 20 дней назад

Как работать с текстовыми файлами в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от laverna , 17 дней назад

@myah 

В Golang существует несколько способов работы с текстовыми файлами. Вот некоторые из них:

  1. Чтение файла построчно:
 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. Чтение файла в буфер:
1
2
3
4
5
6
file, err := ioutil.ReadFile("file.txt")
if err != nil {
    log.Fatal(err)
}

fmt.Println(string(file))


  1. Запись в файл:
 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. Добавление в файл:
 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. Первый пакет отвечает за работу с файлами, а второй - за логирование ошибок.