当前位置: 首页 > 知识库问答 >
问题:

Java 8将字节分成块

韩宜春
2023-03-14

我必须创建一个方法,在那里我需要将文件分块成多个字节

示例byte[]到列表 中,假设每个大小为1 MB(大小=1*1024*1024)

所以5.2MB文件应该是五个1MB和一个2KB的列表。[2KB,1MB,1MB,1MB,1MB,1MB,1MB]。

byte[] mainFile=getFIle();
List<bute[]> listofSplitBytes=getFileChunks(mainFile);

public void list<bute[]> getFileChunks(byte[] mainFile) {
    int sizeMB = 1 * 1024 * 1024;
    // Split the files logic
}

我试图避免添加,如果然后,否则,处理。我想知道有没有一种更干净的方法,比如使用溪流或类似的方法?

共有1个答案

阳光辉
2023-03-14

这是不使用流。Java API复制方法更快,因为它们使用本机代码。

byte[] data = {1,1,1,2,2,2,3,3};
int size = 3;
List<byte[]> chunks = new ArrayList<>();

for(int i = 0; i < data.length; i+=size) {
    chunks.add(Arrays.copyOfRange(data, i, i+ Math.min(size, data.length-i)));
}
for(byte[] ba: chunks) {
    System.out.println(Arrays.toString(ba));
}

输出:

[1, 1, 1]
[2, 2, 2]
[3, 3]
 类似资料:
  • 本文向大家介绍将字符串分成组-JavaScript,包括了将字符串分成组-JavaScript的使用技巧和注意事项,需要的朋友参考一下 给定一个字符串S,该字符串由字母,数字和特殊字符组成。 我们需要编写一个程序将字符串拆分为三个不同的字符串S1,S2和S3,这样 字符串S1将包含S中存在的所有字母, 字符串S2将包含S中存在的所有数字,并且 S3将包含S中存在的所有特殊字符 字符串S1,S2和S

  • 问题内容: 在Java中将字符串拆分为1024个字节的块的有效方法是什么?如果有多个块,则需要在所有后续块中重复标头(固定大小的字符串)。 问题答案: 字符串和字节是完全不同的两件事,因此要将字符串拆分为字节与将绘画拆分为经文一样没有意义。 您实际上想做什么? 要在字符串和字节之间进行转换,您需要指定一种编码,该编码可以对String中的所有字符进行编码。根据编码和字符,其中一些可能跨越一个以上的

  • 问题内容: 好的,所以我一直在使用python尝试创建波形图像,并使用和从文件中获取原始数据,它返回: 我想知道的是我如何分割成三个独立的字节,比如这个, ,因为每个帧由3个字节,所以我需要每一个人字节的值才能够使一个波形。我认为这就是我需要这样做的方式。 问题答案: 您可以对对象使用切片: 但是,在处理这些框架时,您可能还想了解对象。这些使您可以将字节解释为C数据类型,而无需进行任何额外的工作,

  • 问题内容: 方案:各种文件的大小以字节为单位存储在数据库中。将大小信息格式化为千字节,兆字节和千兆字节的最佳方法是什么?例如,我有一个MP3,Ubuntu显示为“ 5.2 MB(5445632字节)”。如何在网页上将其显示为“ 5.2 MB”,并且文件大小小于1 MB的文件显示为KB,文件大小大于1 GB的文件显示为GB? 问题答案: (取自php.net,那里还有许多其他示例,但我最喜欢这个示例

  • 为了使之具体化,请考虑下面的示例,在这里我需要查找所有名称中包含“fish”一词的鱼,然后将每个匹配的鱼的第一个字母大写。(是的,我知道哈格鱼不是真的鱼,但我没有匹配的鱼名了。) 对于这两种方法在字节码级别的本质上可能存在的差异,您可能有的任何洞察力都是很好的。一些实际的字节代码就更好了。

  • 本文向大家介绍C#将字节数组转换成数字的方法,包括了C#将字节数组转换成数字的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#将字节数组转换成数字的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。