【发布时间】:2010-09-30 08:43:14
【问题描述】:
我需要在上传之前在 J2ME 中拆分音频或大图像文件。如何在 JavaME 中拆分/分解文件。
【问题讨论】:
我需要在上传之前在 J2ME 中拆分音频或大图像文件。如何在 JavaME 中拆分/分解文件。
【问题讨论】:
你使用什么 API 来加载文件?
1) 如果使用 FileConnection API,您可以按块加载数据。在这种情况下没有问题。
2)如果你使用 Class.getResourceAsStream(String pathInsideJar) 你会遇到问题。大多数 KVM 在将控制权返回给您的代码之前会完全加载资源。所以我看到了一种方法 - 在创建 jar 之前将大文件拆分为几个小文件。
【讨论】:
DataInputStream dis = FileConnection.getDataInputStream();
字节[] 缓冲区 = 新字节[2048];
整数;
int 总计 = 0;
向量 v = new Vector();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while( ( count = dis.read( buffer ) ) >= 0 )
{
总数 += 计数;
baos.write(buffer, 0, count);
如果(总数> 100000)
{
baos.close(); byte[] data = baos.toByteArray(); v.addElement( data ); baos = new ByteArrayOutputStream(); }}
所以你会有几个字节数组的向量。并且可以一一发送。
或者将所有文件数据读入一个字节数组中,并通过移动发送数据的起始位置将这些数据分部分发送。
【讨论】: