我怎样才能减少'使用带有长参数的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 );
答案 0 :(得分:0)
Arrays
的长度限制为Integer.MAX_VALUE
(= 2 ^ 32 -1)。不需要long
。
简而言之,你不能,因为你不需要。
你可以看到它只是因为Arrays.length()
是一个整数。