Чтение файлов в Go
Из этой темы ты узнаешь:
-
В чём состоит работа с файлами.
-
Функционал пакетов ioutil, os, io, bufio.
-
Как происходит чтение и перемещение в файле.
-
Как происходит закрытие файла.
Работа с файлами
Чтение и запись файлов — это базовая задача, необходимая для решения множества задач. Для начала мы рассмотрим несколько примеров чтения файлов.
Чтение файлов требует проверок множества вызовов на наличие ошибок. Эта функция-хелпер поможет нам обрабатывать ошибки в одном месте.
Пакет ioutil
Возможно, основная задача чтения файлов — это сохранение всего содержимого файла в памяти.
Пакет os
Тебе часто может потребоваться больший контроль над тем, как и какие части файла читаются. Для решения этих задач начни с открытия файла, чтобы получить значение os.File..
Чтение, перемещение в файле
Прочитаем несколько байт с начала файла. Будет прочитано первые 5 байт, но также выведем, сколько фактически было прочитано.
Кроме того, ты можешь получить конкретное место файла с помощью Seek и выполнить Read оттуда.
Пакето io
Пакет io предоставляет некоторые функции, которые могут быть полезны для чтения файлов. Например, чтение, подобное приведенному выше, может быть более надежно реализовано с помощью ReadAtLeast.
Тут нет встроенной перемотки назад, но для этого можно использовать Seek(0, 0).
Пакет bufio
В пакете bufio реализован буферизованный ридер, который может быть полезен из-за своей эффективности при большом количестве небольших операций чтения, а также из-за наличия дополнительных методов чтения, которые он предоставляет.
Закрытие файла
Закрой файл, когда закончишь использовать его, обычно закрытие с defer‘ом делается сразу после открытия.
Рекомендуем изучить следующие материалы по теме: