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

Функция lzw.NewWriter

Функция lzw.NewWriter создает новый LZW-кодировщик, который сжимает данные и записывает их в указанный выходной поток. Первым параметром функция принимает интерфейс io.Writer, в который будут записаны сжатые данные. Вторым параметром указывается порядок следования бит - lzw.LSB или lzw.MSB. Третьим параметром передается количество бит для кодов - значение от 8 до 16.

Синтаксис

lzw.NewWriter(w io.Writer, order lzw.Order, litWidth int) *lzw.Writer

Пример

Давайте создадим LZW-кодировщик и сожмем строку "abcde":

package main import ( "bytes" "compress/lzw" "fmt" ) func main() { var buf bytes.Buffer w := lzw.NewWriter(&buf, lzw.LSB, 8) w.Write([]byte("abcde")) w.Close() fmt.Printf("%q", buf.Bytes()) }

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

"\x00\x84\x86\x82\x00"

Пример

Давайте выполним сжатие с использованием порядка бит MSB:

package main import ( "bytes" "compress/lzw" "fmt" ) func main() { var buf bytes.Buffer w := lzw.NewWriter(&buf, lzw.MSB, 8) w.Write([]byte("abcde")) w.Close() fmt.Printf("%q", buf.Bytes()) }

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

"\x00\x11\x31\x41\x00"

Пример

Давайте сожмем числовые данные и выведем размер до и после сжатия:

package main import ( "bytes" "compress/lzw" "fmt" ) func main() { data := []byte("12345") var buf bytes.Buffer w := lzw.NewWriter(&buf, lzw.LSB, 9) w.Write(data) w.Close() fmt.Printf("Original size: %d, Compressed size: %d", len(data), buf.Len()) }

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

"Original size: 5, Compressed size: 7"

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

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