我有一个整数列表,其值介于[0-65535]之间。 我需要将这些文件写成16位整数。
我如何在Elixir中这样做?
我已搜索过,但我对int和二进制文件以及如何执行16位值的转换感到困惑。
我找到了如何转换为16位二进制文件:
<<12345 :: size(16)>>
答案 0 :(得分:6)
您也可以使用流:
[1, 2, 3]
|> Stream.map(&<<&1::16>>)
|> Enum.into(File.stream!(filename))
这使用短格式::16
代替::size(16)
。文件流将自动处理打开和关闭文件。
答案 1 :(得分:0)
我是这样做的:
{:ok, file} = File.open(filename, [:write])
[1, 2, 3] |> Enum.each(fn(x) -> IO.binwrite(file, <<x :: size(16)>>) end)
File.close(file)