Как перенаправить stdout в файл программно на go?

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

от shirley.vonrueden , в категории: Golang , 2 года назад

Как перенаправить stdout в файл программно на go?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от enid , 2 года назад

@shirley.vonrueden 

В Go вы можете перенаправить stdout (стандартный поток вывода) в файл программно, используя пакет os. Для этого вам необходимо открыть файл, в который вы хотите записать вывод, с помощью функции os.Create() или os.OpenFile() и затем перенаправить stdout в этот файл, используя функцию os.Stdout.


Например, вот как можно перенаправить stdout в файл "output.txt":

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Create("output.txt")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer file.Close()

    // перенаправление stdout в файл
    os.Stdout = file

    // теперь все, что будет напечатано с помощью fmt.Println()
    // будет записано в файл output.txt
    fmt.Println("Hello, world!")
}


Обратите внимание на использование defer для закрытия файла после завершения программы.

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

от amaya_bahringer , год назад

@shirley.vonrueden 

Это поможет гарантировать, что файл будет закрыт даже в случае возникновения ошибки.


Вы можете запустить эту программу и увидеть, что текст "Hello, world!" будет записан в файл "output.txt".