j2me netbeans - 并行数据传输(需要大纲的想法)

时间:2012-02-22 00:18:03

标签: netbeans java-me

我是j2me移动应用程序的新手。我有一个大学项目要在一个月内完成。我需要一些关于如何做到的基本想法。我正在使用Netbeans 6.8 j2me平台。 我必须创建源,目标和许多中间节点(移动电话)。必须通过几个中间节点从源到目的地发送文件(使用蓝牙)。该文件可以拆分为块,也可以在任何级别进行细分。

http://imageshack.us/photo/my-images/692/parallelism.jpg/

这是它应该如何运作的:

  1. 最初,源通过多个路径将Class的简单对象(存在于所有节点中)发送到目标。每个节点都将通过包含其蓝牙地址来更新对象,并将其传递给下一个节点。当它到达目的地时,相同的对象被发送回源。源识别一些最佳路径并将其用于文件传输。

  2. 源拆分文件并将其发送到最近的节点。中间节点也可以拆分并发送分割的部分。

  3. 当所有部件到达目的地时,它们将被连接并重建文件。

    我为源节点,目标节点和中间节点创建了单独的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)
            {        }
    }
    
  4. 请告诉我如何重新加入文件。(我使用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
    

    请介绍一下

    1. 如何重新加入j2me中的块
    2. 如何通过蓝牙传递类的对象

0 个答案:

没有答案