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

Функция flate.NewReader

Функция flate.NewReader создает новый объект для чтения и декомпрессии данных, которые были сжаты с использованием алгоритма DEFLATE. В единственный параметр функция принимает интерфейс io.Reader, из которого будут считываться сжатые данные. Возвращаемое значение реализует интерфейс io.ReadCloser, что позволяет читать распакованные данные и закрывать reader после использования.

Синтаксис

flate.NewReader(r io.Reader) io.ReadCloser

Пример

Давайте создадим reader для декомпрессии данных из сжатого буфера:

package main import ( "bytes" "compress/flate" "fmt" "io" ) func main() { // Сжатые данные DEFLATE для строки "abcde" compressed := []byte{0x0a, 0x45, 0x4c, 0x4f, 0x4c, 0x00, 0x01, 0x00, 0x00, 0xff, 0xff} buf := bytes.NewReader(compressed) // Создаем reader для декомпрессии r := flate.NewReader(buf) defer r.Close() // Читаем распакованные данные res, err := io.ReadAll(r) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(res)) }

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

"abcde"

Пример

Давайте продемонстрируем чтение данных порциями при декомпрессии:

package main import ( "bytes" "compress/flate" "fmt" "io" ) func main() { // Сжатые данные DEFLATE для строки "12345" compressed := []byte{0x0a, 0x45, 0x4c, 0x4f, 0x4c, 0x00, 0x01, 0x00, 0x00, 0xff, 0xff} buf := bytes.NewReader(compressed) // Создаем reader для декомпрессии r := flate.NewReader(buf) defer r.Close() // Читаем данные порциями по 2 байта p := make([]byte, 2) res := "" for { n, err := r.Read(p) if err == io.EOF { break } if err != nil { fmt.Println("Error:", err) return } res += string(p[:n]) } fmt.Println(res) }

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

"12345"

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

  • функцию flate.NewWriter,
    которая создает writer для сжатия данных алгоритмом DEFLATE
  • функцию gzip.NewReader,
    которая создает reader для декомпрессии данных в формате gzip
  • функцию zlib.NewReader,
    которая создает reader для декомпрессии данных в формате zlib
  • функцию compress/flate,
    которая предоставляет описание пакета flate в целом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить