在J2ME中分割/分割文件
答
你使用什么API来进行文件加载?
1)如果FileConnection API可以按块加载数据。在这种情况下没有问题。
2)如果你使用Class.getResourceAsStream(String pathInsideJar),你会遇到问题。在将控制权返回给您的代码之前,大多数KVM会充分加载资源。所以我看到了一种方法 - 在创建jar之前将大文件分割成几个小文件。
答
DataInputStream dis = FileConnection.getDataInputStream();
byte [] buffer = new byte [2048];
int count;
int total = 0;
Vector v = new Vector();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
而((计数= dis.read(缓冲液))> = 0)
{
总+ =计数;
baos.write(buffer,0,count);
如果(总> 100000)
{
baos.close(); byte[] data = baos.toByteArray(); v.addElement(data); baos = new ByteArrayOutputStream(); }
}
所以,你将有几个字节数组的载体。你可以一个一个发送。
或者将所有文件数据读入一个字节数组,并将这些数据按发送数据的移位开始位置进行部分发布。
嗨,感谢您的回复,我正在使用FileConnection API。你能否给我一个示例代码。当我上传一个大文件到Web应用程序时出错。 – 2010-10-01 04:39:28