【问题标题】:How to write a list of integers to a file as 16 bit values in Elixir如何在 Elixir 中将整数列表作为 16 位值写入文件
【发布时间】:2016-01-21 14:49:47
【问题描述】:

我有一个整数列表,其值在 [0-65535] 之间。 我需要将这些作为 16 位整数写入文件。

如何在 Elixir 中执行此操作?

我已经搜索过了,但我对整数和二进制文件以及如何执行 16 位值的转换感到困惑。

我找到了如何转换为 16 位二进制:

<<12345 :: size(16)>>

【问题讨论】:

    标签: elixir


    【解决方案1】:

    您也可以使用流:

    [1, 2, 3]
    |> Stream.map(&<<&1::16>>)
    |> Enum.into(File.stream!(filename))
    

    这使用缩写形式::16 而不是::size(16)。文件流会自动打开和关闭文件。

    【讨论】:

      【解决方案2】:

      我是这样做的:

      {:ok, file} = File.open(filename, [:write])
      
      [1, 2, 3] |> Enum.each(fn(x) -> IO.binwrite(file, <<x :: size(16)>>) end)
      
      File.close(file)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-09
        • 2011-07-02
        • 2014-07-03
        • 1970-01-01
        • 1970-01-01
        • 2019-05-30
        • 1970-01-01
        相关资源
        最近更新 更多