Java byte []指针转换

时间:2016-12-07 16:54:09

标签: java

我有一个给出这些参数的方法

int read( byte result[], int offset, int size ) {
}

我需要从中调用另一种方法:

int read( byte result[], int length ) {
}

我知道如何使用偏移量在C ++中转换数组,但我不知道如何在Java中执行此操作。

1 个答案:

答案 0 :(得分:1)

你做不到。您必须创建子数组的副本。

最简单的方法是使用Arrays.copyOfRange(xxx[] original, int from, int to)方法之一,其中xxx是基本类型或任何对象类型。

如果需要,您可以使用System.arraycopy()将更新的值复制回原始数组。

在你的情况下,参数实际上只是输出,所以你只需创建一个新数组,用它调用方法,然后将值复制到原始数组,例如

int read( byte result[], int offset, int size ) {
    if (offset == 0)
        return read(result, size);
    byte[] buf = new byte[size];
    int bytesRead = read(buf, size);
    System.arraycopy(buf, 0, result, offset, bytesRead);
    return bytesRead;
}