2017-01-27 87 views
0

如何使用長參數Arrays.copyOfRange「剪切」字節數組?Arrays.copyOfRange(byte [],long,long)?在Java中

編輯:我需要削減從字節索引文件(未大於2GB)到文件的結尾(字節[]長度)

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); 
+2

你如何擁有超過'Integer.MAX_VALUE'元素的數組? – bradimus

+1

數組被限制爲'Integer.MAX_VALUE'的長度,因此2^32 -1。這裏不需要「長」。所以總之,你不能因爲你不需要 – AxelH

+0

@bradimus那裏有'不安全',可以做到 – Eugene

回答

0

Arrays被限制到一個長度Integer.MAX_VALUE(= 2^32 -1)。不需要long

總之,你不能因爲你不需要。

你可以看到它,因爲Arrays.length()是一個整數。