搜索会产生许多关于如何将 int 转换为 byte[] 的问题。我有一个带有关键循环的项目,它将长 int [] 写入 FileOutputStream。FileOutputStream 需要一个 byte[] 来写入。我可以暴力破解不同的方法;我正在寻找一种将 int[] 直接发送到 FileOutputStream 的方法或将 int[] 转换为 byte[] 的最快方法 - 类似于包装缓冲区。我看到了包装 byte[] 以转换为 int[] 和 float[] 的方法......但没有其他方式(从 int[] 到 byte[])。谢谢。
更新:在证明需要之前,仍然希望避免内存映射 I/O 的复杂性(或目前正在试验)。下面的评论促使我考虑创建一个 ByteBuffer,将其包装在一个 IntBuffer 中,将 int 写入 IntBuffer,然后从 ByteBuffer 中提取一个 byte[] 以发送到 FileOutputStream。显而易见的替代方法是直接使用 byte[],这需要我将数据作为字节而不是整数来操作,我可以这样做 - 但与 byte[]/ByteBuffer 相比,它的效率高多少(如果有的话) /IntBuffer 包装方案?