Как я могу «вырезать» массив байтов, используя Arrays.copyOfRange
с длинными параметрами?Arrays.copyOfRange (байт [], длинный, длинный)? в Java
EDIT: Я нужно сократить файл (не больше, чем 2 Гб) от индекса байта до конца файла (байты [] длина.)
int size = f.length()
броски: несовместимых типов: возможные потерь преобразования из длинных в 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);
Как у вас есть массив с более чем элементами Integer.MAX_VALUE? – bradimus
Массивы ограничены длиной 'Integer.MAX_VALUE', поэтому 2^32 -1. Здесь не нужно «долго». Короче говоря, вы не можете, потому что вам не нужно – AxelH
@bradimus есть 'Unsafe', который может это сделать – Eugene