2
Я хотел бы прочитать 1-й 2 байта файла как «unsigned int».Как я могу прочитать срез с другим размером в кристалле?
Я проверил нить «Crystal reading x bytes from file» , и я мог получить 1-й 2-й байт со следующим кодом.
File.open("./test/test_data") do |io|
buffer = Slice(UInt8).new(2)
bytes_read = io.read(buffer)
buffer = buffer[0, bytes_read]
pp buffer
end
Однако этот код возвращает "2 Uint8"
$ crystal test2.cr
buffer # => Slice[0, 6]
Как я могу читать эти "2 Uint8" как "1 UInt16"?
То же самое можно сделать с помощью 'IO # read_bytes' (может быть немного более идиоматических):' io.read_bytes (UInt16, IO :: ByteFormat :: LittleEndian) ' – asterite
Спасибо ваше для оба быстрый ответ. Я мог бы подтвердить, что оба кода работают хорошо. – elgoog