2

ファイルの最初の 2 バイトを「unsigned int」として読み取りたい。

スレッド「Crystal reading x bytes from file」を確認したところ、次のコードで最初の 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" と読むにはどうすればよいですか?

4

1 に答える 1

4
File.open("test/test_data") do |io|
  p UInt16.from_io(io, IO::ByteFormat::LittleEndian)
end

Int.from_io

于 2016-08-16T13:48:31.947 に答える