Получение доступа к файлу является довольно частой операцией, что используется для хранения или чтения данных. В данной инструкции показано, как открыть файл через его название и путь к нему, используя для этого стандартную библиотеку.
Как открыть файл в Golang используя полный путь к нему?
1. Откройте консоль и создайте папку chapter05/recipe03
;
2. Перейдите в созданную директорию;
3. Создайте директорию temp
, а внутри нее файл file.txt
;
4. Отредактируйте файл file.txt
, записав внутри него фразу This file content;
5. Создайте файл openfile.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
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 |
package main import ( "fmt" "io" "io/ioutil" "os" ) func main() { f, err := os.Open("temp/file.txt") if err != nil { panic(err) } c, err := ioutil.ReadAll(f) if err != nil { panic(err) } fmt.Printf("### File content ###\n%s\n", string(c)) f.Close() f, err = os.OpenFile("temp/test.txt", os.O_CREATE|os.O_RDWR, 0777) if err != nil { panic(err) } io.WriteString(f, "Test string") f.Close() } |
4. Файловая структура будет выглядеть следующим образом:
5. Запустите код через go run openfile.go
;
6. Посмотрите на вывод, в папке temp
должен быть новый файл test.txt
:
Пакет os
предоставляет простой способ для открытия файла. Функция Open
открывает файл получив путь к нему, только в режиме для чтения. Другая функция OpenFile
является более продвинутой и требует такие параметры как путь к файлу, флаги и разрешения (только чтение или запись).
Константы флагов определяются в пакете os
, вы можете комбинировать их с использованием бинарного оператора OR |
. Разрешения устанавливаются константами пакета os
(к примеру, os.ModePerm
) или в числовом эквиваленте вроде 0777
(разрешения: -rwxrwxrwx
).
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»
И где здесь полный путь к файлу?