РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
523 of 1593 menu

Метод os.File.Read

Метод os.File.Read читает данные из файла в байтовый слайс. В первый параметр он принимает байтовый слайс, в который будут записаны прочитанные данные. Метод возвращает количество фактически прочитанных байт и ошибку. Чтение происходит до заполнения слайса или до достижения конца файла.

Синтаксис

func (f *File) Read(b []byte) (n int, err error)

Пример

Давайте прочитаем содержимое файла в байтовый слайс размером 100 байт:

package main import ( "fmt" "os" ) func main() { file, err := os.Open("example.txt") if err != nil { fmt.Println("Error opening file:", err) return } defer file.Close() buffer := make([]byte, 100) n, err := file.Read(buffer) if err != nil { fmt.Println("Error reading file:", err) return } fmt.Printf("Read %d bytes: %s\n", n, string(buffer[:n])) }

Результат выполнения кода:

"Read 27 bytes: Hello, this is test file."

Пример

Давайте прочитаем файл по частям в цикле, пока не достигнем его конца:

package main import ( "fmt" "os" ) func main() { file, err := os.Open("example.txt") if err != nil { fmt.Println("Error opening file:", err) return } defer file.Close() buffer := make([]byte, 16) totalBytes := 0 for { n, err := file.Read(buffer) if n > 0 { totalBytes += n fmt.Printf("%s", string(buffer[:n])) } if err != nil { break } } fmt.Printf("\nTotal bytes read: %d\n", totalBytes) }

Результат выполнения кода:

"Hello, this is test file." "Total bytes read: 27"

Пример

Давайте обработаем ошибку конца файла, используя константу io.EOF:

package main import ( "fmt" "io" "os" ) func main() { file, err := os.Open("example.txt") if err != nil { fmt.Println("Error opening file:", err) return } defer file.Close() buffer := make([]byte, 32) for { n, err := file.Read(buffer) if err != nil { if err == io.EOF { fmt.Println("End of file reached") break } fmt.Println("Error reading file:", err) return } fmt.Printf("Read %d bytes: %s\n", n, string(buffer[:n])) } }

Результат выполнения кода:

"Read 27 bytes: Hello, this is test file." "End of file reached"

Смотрите также

  • функцию os.Open,
    которая открывает файл для чтения
  • функцию os.ReadFile,
    которая читает файл целиком
  • метод os.File.Write,
    который записывает данные в файл
  • метод os.File.Close,
    который закрывает открытый файл
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить