我是j2me移动应用程序的新手。我有一个大学项目要在一个月内完成。我需要一些关于如何做到的基本想法。我正在使用Netbeans 6.8 j2me平台。 我必须创建源,目标和许多中间节点(移动电话)。必须通过几个中间节点从源到目的地发送文件(使用蓝牙)。该文件可以拆分为块,也可以在任何级别进行细分。
http://imageshack.us/photo/my-images/692/parallelism.jpg/
这是它应该如何运作的:
最初,源通过多个路径将Class的简单对象(存在于所有节点中)发送到目标。每个节点都将通过包含其蓝牙地址来更新对象,并将其传递给下一个节点。当它到达目的地时,相同的对象被发送回源。源识别一些最佳路径并将其用于文件传输。
源拆分文件并将其发送到最近的节点。中间节点也可以拆分并发送分割的部分。
当所有部件到达目的地时,它们将被连接并重建文件。
我为源节点,目标节点和中间节点创建了单独的netbeans项目。 拆分:我通过将文件转换为字节数组并使用文件连接&创建文件来成功拆分。的OutputStream
public void splitfiles(int len)
{
String url="file:///root1/testfile.jpg";
// int len = 102400;
byte buffer[] = new byte[size];
int count = 0;
try
{
FileConnection fconi = (FileConnection)Connector.open(url,Connector.READ);
InputStream fis = fconi.openInputStream();
while (true)
{
int i = fis.read(buffer, 0, len); //creating byte array of size "len" bytes
if (i == -1)
break;
++count;
String filename ="file:///root1/testfile.part" + count;
FileConnection fcono = (FileConnection)Connector.open(filename,Connector.READ_WRITE);
if (!fcono.exists())
fcono.create();
OutputStream fos = fcono.openOutputStream();
fos.write(buffer, 0, i); //creating files out of byte array "buffer"
fos.close();
fcono.close();
}
}
catch(Exception e)
{ }
}
请告诉我如何重新加入文件。(我使用java类“RandomAcessFile”重新加入它们,这在j2me中不存在)。 我尝试了以下方式
while(number of chunks)
{
read a single file in inputstream (files are read one after the other)
copy it to a byte array and flush inputstream
write it to ouputstream
}
copy outputstream to a file
flush outputstream
请介绍一下