Ответ 1
Для управления файлами пакет os
- ваш друг:
f, err := os.Open("myfile")
if err != nil {
panic(err)
}
defer f.Close()
Для большего контроля над тем, как файл открыт, см. os.OpenFile()
вместо (doc).
Для чтения файлов существует много способов. Тип os.File
, возвращаемый os.Open
(f
в приведенном выше примере) реализует интерфейс io.Reader
(у него есть метод Read()
с правой подписью), его можно использовать непосредственно для чтения некоторых данных в буфера (a []byte
), или его также можно обернуть в буферизованное считывающее устройство (тип bufio.Reader
).
В частности, для двоичных данных пакет encoding/binary
может быть полезен для чтения последовательности байтов в некоторой типизированной структуре данных. Вы можете увидеть пример в Go doc here. Функция binary.Read()
может использоваться с файлом, считанным с помощью функции os.Open()
, поскольку, как я уже упоминал, это io.Reader
.
А также простой в использовании пакет io/ioutil
, который позволяет вам читать весь файл сразу в байтовом фрагменте (ioutil.ReadFile()
, который принимает имя файла, поэтому вам даже не нужно открывать/закройте файл самостоятельно) или ioutil.ReadAll()
, который принимает io.Reader
и возвращает кусок байтов, содержащий весь файл. Здесь doc на ioutil.
Наконец, как упоминалось выше, вы можете google о языке Go, используя "golang", и вы должны найти все, что вам нужно. список рассылки golang-nuts - также отличное место для поиска ответов (убедитесь, что вы искали сначала перед публикацией, многие вещи уже были ответил). Чтобы посмотреть сторонние пакеты, проверьте godoc.org.
НТН