如何在Scala中将long数组转换为字节?

时间:2012-10-09 19:17:05

标签: scala

我想md5 Array[Long],所以我想将其设为Array[Byte],因为MD5函数需要Array[Byte],我该怎么做?

我使用messagedigest。

1 个答案:

答案 0 :(得分:6)

使用ByteBuffer

val arr = listOfLongs.
  foldLeft(ByteBuffer.allocate(8 * listOfLongs.size)){ (buffer, lon) => 
    buffer putLong lon
  }.array

或者更迫切:

val buffer = ByteBuffer.allocate(8 * listOfLongs.size)
listOfLongs.foreach(buffer putLong _)
val arr = buffer.array

注意:如果您需要little-endian,请致电:

buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN)

一开始。更多灵感:Convert long to byte array and add it to another array