RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1552722
Accepted
Arthur Alunts
Arthur Alunts
Asked:2023-11-23 10:21:48 +0000 UTC2023-11-23 10:21:48 +0000 UTC 2023-11-23 10:21:48 +0000 UTC

RecordStore j2me 的综合示例?

  • 772

0)现在是 2023 年(结束)。每个人都拥有 Android/IOS 移动设备:手机、平板电脑、手表等。

1)我有一部支持 j2me+、Netbeans 7.4+、j2me sdk+、模拟器的按键式电话。

2)网络上没有该技术具有魅力的示例。到处都有一些未完成的例子。

3)全局任务是这样的:我们需要一个RecordStore的完整示例(不是类,未完成,有bug),即:让midlet包含以下方法:

Create_If_Not_exist/Open/Append/Set/Delete/Get_Number_Of_Records/Get_All_Recod_Store_List/
Delete_All_Record_Store_List/Close.

4)本地任务是:

При первом запуске мидлета:
Создал.
Открыл.
Добавил 10 записей с текстом "Hello_World".
Закрыл.


При втором запуске и далее всегда:
Открыл.
Считал. (Вывел на экран все 10 записей (этих же, которые сохранил).)
2-ю запись сделал такой: "Hello_World_2222222".
Закрыл.

5)这就是你所需要的。先感谢您。

java
  • 1 1 个回答
  • 91 Views

1 个回答

  • Voted
  1. Best Answer
    Arthur Alunts
    2023-11-24T12:07:49Z2023-11-24T12:07:49Z

    这就是发生的事情。我认为当地的问题已经彻底解决了。我从用户 @Lucifer 那里获取了代码并对其进行了一些调整。代码中的注释都写完了,原来需要在Netbeans 7.4中点击按钮(“停止”),并且不要关闭模拟器,否则所有条目都会被删除。然后再次按下按钮(“运行”)。

    package k; 
    
    import javax.microedition.rms.*;
    import javax.microedition.midlet.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.io.*;
    
    public class RW extends MIDlet
    {
    
     public static RecordStore rs = null;
     public static RecordEnumeration re=null;
     public static int Length0000=10;
     public static String EmptyValue = "Hello World";
     public static String REC_STORE_NAME = "MyRS0000";
     public static int NumberOfRecordStore = 0;
    
     public RW(){
      
    }
      public static void create_Storage(int Length) throws RecordStoreNotOpenException
      { if(!(rs.getNumRecords()>0)){
        for(int i=1;i<=Length0000;i++){appendRecord((EmptyValue));} 
      }
      printing("Recordstore: "+ REC_STORE_NAME+ "is created");
      }
    
      
    
      public void startApp() 
      {
         //new RW();
          
           //Внимание_0: нужно нажимать на красную кнопку не телефона эмулятора,
          //а красную кнопку вывода консоли("остановить"),и потом, снова зеленую кнопку 
         //IDE Netbeans("запустить"), и так N раз. Т.о. эмулятор не закрывается,
        //и все записи хранилища (RecordStore) сохраняются.
       //Код взят от пользователя (Lucifer) с сайта stackoverflow.com.
      //и доработан мною (Alunts Arthur Arthurovich).
          
      //нимание_1: Хранилище индексируется с 1 (но не с 0).
      //Внимание_2: Не забваейте инициировать пременные, если используете класс как внешний.  
      //Внимание_3: Не забвайте дописывать логику сохранения в destroyApp();
          
         try {  
          openRecStore();
          create_Storage(10);              //создаем хранилище с 10-ю записями 
                                          //со стнадартным значением EmptyValue. 
          //appendRecord("Hello World");  //добавляем 1 новую запись запись в конец,
          if((rs.getNextRecordID()>0)){
          setRecord(2, "Hello_World_2222222");} // задаём запись под номером 2
         
          getRecord(2);                //читаем запись под номером 2  
          read_All_Records();         //читаем все записи
          getNumber_0();             //Выдаем число всех записей    
          getRecordStore_Name(rs);  //Читаем имя оккрытой записи
          closeRecStore();         // закрываем все записи
          //deleteRecStore();    // удаляем все записи хранилища (хранилище должно быть закрыто)
       } catch (RecordStoreNotOpenException ex) {  ex.printStackTrace();     } catch (RecordStoreException ex) {
             ex.printStackTrace();
       }
      }
    
      public void pauseApp()
      {
      }
    public void destroyApp( boolean unconditional )
      {
        //Здесь сохраняемся, если нужно:
        
        // делаем:  appendRecord("Record_11111");
        // делаем:  setRecord(2, "Value_22222");
        // делаем:  closeRecStore();  
         printing("Saved, CloseD , Exit");//Эта строчка может и не выводится  
         notifyDestroyed();   
      }
      
    public static void openRecStore()
      {
        try
        {
          rs = RecordStore.openRecordStore(REC_STORE_NAME, true );
          printing("RecordStore: "+REC_STORE_NAME +" is opened!");
          if(rs.getNumRecords()>0){
          printing("RecordStore: "+REC_STORE_NAME +" is created!");
        }
        }
        catch (Exception e)    { printing(e.toString()); 
        }
      }  
      
      public static void getRecordStore_Name(RecordStore RS)
      {
        try
        {
          if(rs.getNumRecords()>0){
                String Name0 = rs.getName();
               // int ID_0 = rs.getNextRecordID();
              printing("Name_of_Opened_RecordStore: " + Name0  + "");
        } 
        }
        catch (Exception e)
        {
          printing(e.toString());
        }
      }  
      
    public static void getNumber_0()  
       {
    try{
      NumberOfRecordStore=rs.getNumRecords();
      printing("Number of Records is: "+NumberOfRecordStore);
        }catch(Exception ex){ex.printStackTrace();}
    
    
    }
      public static void closeRecStore()
      {
        try
        {
          rs.closeRecordStore();
          System.out.println("RecordStore: "+REC_STORE_NAME +" is closed");
        }
        catch (Exception e)
        {
          printing(e.toString());
        }
      }
      public static void deleteRecStore()
      {
        if (RecordStore.listRecordStores() != null)
        {
          try
          {
            RecordStore.deleteRecordStore(REC_STORE_NAME);
            printing("RecordStore: "+REC_STORE_NAME +" is deleted");
          }
          catch (Exception e)
          {
            printing(e.toString());
          }
        }      
      }
      public static void appendRecord(String str)
      {
        byte[] rec=null; 
        rec =str.getBytes();
    
        try
        {
         rs.addRecord(rec, 0, rec.length);
         printing(str + " Record is appended: " );
        }
        catch (Exception e)
        {
          printing(e.toString());
        }
      }
      
      public static void setRecord(int i, String str)
      {
        byte[] rec = str.getBytes();
    
        try
        {
          rs.setRecord(i, rec, 0, rec.length);
          //rs.setRecord(rec, 0, rec.length);
          printing("Record is setted "+ "["+ i+ "]: "+ str);
        }
        catch (Exception e)
        {
          printing(e.toString());
        }
      }
      
    
      public static String getRecord(int i)  {
          int ii=0;
          String Out="";
        try
        {
           byte[] recData = new byte[10];//Не знаю зачем это надо!
          int len;
          if (i<=rs.getNumRecords()){
          if (rs.getRecordSize(i) > recData.length)
           recData = new byte[rs.getRecordSize(i)];
            len = rs.getRecord(i, recData, 0);
            Out = new String(recData, 0, len);
            ii=i;
            printing("Record is getted: "+ "["+ ii+ "]"+ Out);
    
          }
       
        }
        catch (Exception e)
        {
          printing(e.toString());
        }
        return Out;
      }
      
      public static void read_All_Records() throws RecordStoreException{
    int i=0;
    re = rs.enumerateRecords(null, null, false);
    while (re.hasNextElement()){
        i++;
    String s = new String(re.nextRecord());
    printing("Readen record ["+ i +"] is : " + s+"" );
    }}
      
      
      static void printing(String str)
      {
        System.out.println(" " + str);
      }
    }
    
    • 0

相关问题

  • wpcap 找不到指定的模块

  • 如何以编程方式从桌面应用程序打开 HTML 页面?

  • Android Studio 中的 R.java 文件在哪里?

  • HashMap 初始化

  • 如何使用 lambda 表达式通过增加与原点的距离来对点进行排序?

  • 最大化窗口时如何调整元素大小?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5