我需要在上传之前在J2ME中拆分音频或大图像文件。如何在JavaME中将文件拆分成碎片。
答案 0 :(得分:0)
您使用什么API加载文件?
1)如果FileConnection API可以按块加载数据。在这种情况下没有问题。
2)如果使用Class.getResourceAsStream(String pathInsideJar),则会遇到问题。在将控制权返回给您的代码之前,大多数KVM都会完全加载资源。所以我看到了一种方法 - 在创建jar之前将大文件拆分成几个小文件。
答案 1 :(得分:0)
DataInputStream dis = FileConnection.getDataInputStream();
byte [] buffer = new byte [2048];
int count;
int total = 0;
Vector v = new Vector();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((count = dis.read(buffer))> = 0)
{
总计+ =计数;
baos.write(buffer,0,count);
if(total> 100000)
{
baos.close(); byte[] data = baos.toByteArray(); v.addElement( data ); baos = new ByteArrayOutputStream(); }
}
所以你将拥有几个字节数组的Vector。你可以一个一个地发送它。
或者将所有文件数据读入一个字节数组,并按照发送数据的移动开始位置的部分发布这些数据。