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

Функция zlib.NewReader

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

Синтаксис

zlib.NewReader(r io.Reader) (io.ReadCloser, error)

Пример

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

package main import ( "bytes" "compress/zlib" "fmt" "io" ) func main() { // Сжимаем данные для примера var compressed bytes.Buffer writer := zlib.NewWriter(&compressed) writer.Write([]byte("abcde")) writer.Close() // Распаковываем данные reader, err := zlib.NewReader(&compressed) if err != nil { fmt.Println("Error:", err) return } defer reader.Close() res, err := io.ReadAll(reader) if err != nil { fmt.Println("Error:", err) return } fmt.Println(string(res)) }

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

"abcde"

Пример

Давайте обработаем ошибку при создании reader с некорректными данными:

package main import ( "bytes" "compress/zlib" "fmt" ) func main() { // Некорректные zlib данные invalidData := bytes.NewReader([]byte("invalid zlib data")) reader, err := zlib.NewReader(invalidData) if err != nil { fmt.Println(err) return } defer reader.Close() }

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

"zlib: invalid header"

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

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