那么将它复制如何访问一个原始阵列的一部分,我知道有两个类似的问题,但我的是不同的:不需要在Java
如何获得基本数组的子集,而不复制呢?
为什么? 我必须阅读许多大型“文件”(约20M)通过标准输入读取。这些文件内嵌有JPG文件。这些JPG文件用于一些计算。我需要保留原始文件,而我使用嵌入式JPG来决定保留原始文件。
为此我想获得字节数组(原始文件)的子集(JPG)。我想用第三方库(OpenCV)使用这个子集数组。
最接近的解决方案是:Arrays.asList(array).subList(x,y)。 但是这个解决方案不适用于原始数组。我试图通过不复制数组而不使用包装类来提高性能。
真的没有办法抓取原始数组的子集吗? (数组,位置,长度).toArray()返回原始完整字节数组。
编辑:对不起,忘记告诉你,我从设备而不是磁盘获取这些文件。因此,我需要首先将整个事件记录到记忆中。然后决定将它保存在磁盘上或不。
番石榴有'Ints.asList()'(对于其他原始类型相同)。 – shmosel
为什么要将整个文件首先读入内存?只读/跳到JPG部分,阅读,然后做出您的决定。 – EJP
正如我所提到的,我需要决定保留基于JPG的一些属性的整个事情。字节数组来自一个设备。我不想保存在磁盘上以减少磁盘上的IO负担,因为我将处理很多这样的文件。也许是1000年。 – Genom