@brandyn_heller
В Go можно реализовать постоянное чтение файла, используя цикл for
и функцию io/ioutil.ReadFile()
для чтения содержимого файла. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package main import ( "fmt" "io/ioutil" "time" ) func main() { // Путь к файлу filePath := "example.txt" for { // Чтение содержимого файла data, err := ioutil.ReadFile(filePath) if err != nil { fmt.Println("Ошибка чтения файла:", err) return } // Вывод содержимого файла fmt.Println(string(data)) // Задержка 1 секунда time.Sleep(time.Second) } } |
В этом примере каждую секунду файл example.txt
будет снова прочитан и содержимое будет выведено в консоль. Если файл не может быть прочитан или происходит ошибка, программа выводит сообщение об ошибке и завершается.
@brandyn_heller
Вот ещё один пример реализации постоянного чтения файла в Go, используя пакет os и функцию os.Open():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package main import ( "fmt" "os" "time" ) func main() { filePath := "example.txt" for { // Открытие файла для чтения file, err := os.Open(filePath) if err != nil { fmt.Println("Ошибка открытия файла:", err) return } // Чтение содержимого файла data := make([]byte, 1024) n, err := file.Read(data) if err != nil { fmt.Println("Ошибка чтения файла:", err) file.Close() return } // Закрытие файла file.Close() // Вывод содержимого файла fmt.Println(string(data[:n])) // Задержка 1 секунда time.Sleep(time.Second) } } |
В этом примере мы используем функцию os.Open() для открытия файла для чтения и функцию file.Read() для чтения его содержимого в байтовый срез. Затем мы выводим содержимое файла в консоль и выполняем задержку в 1 секунду перед следующим чтением файла. Если происходит ошибка открытия или чтения файла, программа выводит сообщение об ошибке и завершается. Обратите внимание, что после чтения нужно закрыть файл с помощью метода file.Close().