Arrays.copyOfRange(byte [],long,long)?在Java中

时间:2017-01-27 14:58:38

标签: java arrays byte

我怎样才能减少'使用带有长参数的Arrays.copyOfRange的字节数组?

编辑:我需要将文件(不大于2GB)从字节索引切换到文件末尾(byte [] .length)

int size = f.length()

抛出: 不兼容的类型:从long到int的可能有损转换 (即使文件是600kB)

File f = new File("path-to-file");
byte[] bytes = Files.readAllBytes( f.toPath() );

long indexToCutFrom = a_long_number; 
long indexToCutTo = f.length() - 1;

// method with these parameters does not exists
byte[] cuttedBytes = Arrays.copyOfRange( bytes, indexToCutFrom, indexToCutTo );

1 个答案:

答案 0 :(得分:0)

Arrays的长度限制为Integer.MAX_VALUE(= 2 ^ 32 -1)。不需要long

简而言之,你不能,因为你不需要。

你可以看到它只是因为Arrays.length()是一个整数。