Функция hex.NewEncoder
Функция hex.NewEncoder создает новый потоковый кодировщик,
который записывает шестнадцатеричное представление переданных
данных в указанный io.Writer. В качестве единственного
параметра функция принимает io.Writer, в который будет
производиться запись, и возвращает io.Writer, через
который можно передавать данные для кодирования.
Синтаксис
hex.NewEncoder(w io.Writer) io.Writer
Пример
Давайте закодируем строку 'abcde' в шестнадцатеричный
формат с использованием потокового кодировщика:
package main
import (
"encoding/hex"
"fmt"
"strings"
)
func main() {
var buf strings.Builder
encoder := hex.NewEncoder(&buf)
encoder.Write([]byte("abcde"))
fmt.Println(buf.String())
}
Результат выполнения кода:
"6162636465"
В этом примере мы создаем буфер, передаем его в кодировщик, записываем данные и получаем шестнадцатеричную строку.
Пример
Давайте закодируем массив байтов в шестнадцатеричный формат с помощью потокового кодировщика:
package main
import (
"encoding/hex"
"fmt"
"strings"
)
func main() {
var buf strings.Builder
encoder := hex.NewEncoder(&buf)
data := []byte{0x01, 0x02, 0x03, 0x0F}
encoder.Write(data)
fmt.Println(buf.String())
}
Результат выполнения кода:
"0102030f"
В этом примере каждый байт преобразуется в двухсимвольное шестнадцатеричное представление в нижнем регистре.
Пример
Давайте закодируем данные порциями с использованием потокового кодировщика:
package main
import (
"encoding/hex"
"fmt"
"strings"
)
func main() {
var buf strings.Builder
encoder := hex.NewEncoder(&buf)
encoder.Write([]byte("Hello "))
encoder.Write([]byte("World"))
fmt.Println(buf.String())
}
Результат выполнения кода:
"48656c6c6f20576f726c64"
Потоковый кодировщик позволяет обрабатывать данные последовательно, записывая их частями без потери производительности.
Смотрите также
-
функцию
hex.Encode,
которая кодирует данные в шестнадцатеричный формат в слайс байтов -
функцию
hex.EncodeToString,
которая кодирует данные в шестнадцатеричную строку -
функцию
hex.Decoder,
которая декодирует шестнадцатеричные данные обратно в байты -
функцию
hex.Dump,
которая возвращает шестнадцатеричный дамп данных с адресами и ASCII