1
我有一个整数列表,其值介于[0-65535]之间。 我需要将这些文件写入16位整数。如何在Elixir中将整数列表写入文件作为16位值
我该如何在Elixir中做到这一点?
我已经搜索过,但我很困惑整数和二进制文件以及如何执行16位值的转换。
我已经找到了如何转换为16位二进制:
<<12345 :: size(16)>>
我有一个整数列表,其值介于[0-65535]之间。 我需要将这些文件写入16位整数。如何在Elixir中将整数列表写入文件作为16位值
我该如何在Elixir中做到这一点?
我已经搜索过,但我很困惑整数和二进制文件以及如何执行16位值的转换。
我已经找到了如何转换为16位二进制:
<<12345 :: size(16)>>
您也可以使用流:
[1, 2, 3]
|> Stream.map(&<<&1::16>>)
|> Enum.into(File.stream!(filename))
这使用简写形式::16
而不是::size(16)
。文件流将自动打开和关闭文件。
这是我如何做的:
{:ok, file} = File.open(filename, [:write])
[1, 2, 3] |> Enum.each(fn(x) -> IO.binwrite(file, <<x :: size(16)>>) end)
File.close(file)
不错!这是我一直在寻找的,谢谢! –