Java 数组.copyOfRange(字节[],长,长)?在爪哇

Java 数组.copyOfRange(字节[],长,长)?在爪哇,java,arrays,byte,Java,Arrays,Byte,如何使用带有长参数的Arrays.copyOfRange来“剪切”字节数组 编辑:我需要将文件(不大于2GB)从字节索引剪切到文件末尾(字节[]。长度) 抛出: 不兼容类型:可能从long转换为int (即使文件大小为600kB) 数组的长度限制为整数。最大值(=2^32-1)。不需要long 简而言之,你不能,因为你不需要 您可以看到它,因为Arrays.length()是一个整数。如何使数组包含超过integer.MAX\u VALUE元素?数组的长度限制为integer.MAX\u VAL

如何使用带有长参数的
Arrays.copyOfRange
来“剪切”字节数组

编辑:我需要将文件(不大于2GB)从字节索引剪切到文件末尾(字节[]。长度)

抛出: 不兼容类型:可能从long转换为int (即使文件大小为600kB)


数组
的长度限制为
整数。最大值
(=2^32-1)。不需要
long

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


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

如何使数组包含超过
integer.MAX\u VALUE
元素?数组的长度限制为
integer.MAX\u VALUE
so 2^32-1。这里不需要
long
。简而言之,你不能,因为你不需要to@bradimus有不安全的可以做到这一点that@Eugene,你能解释一下吗?我可能会很快找到正确的答案……你确定
int
还不够吗?您希望在内存中保留大于2GB的字节数组的原因是什么?
int size = f.length()
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 );