CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2ME

J2ME中持久存储的问题

楼主oostart(Wing Lau)2005-08-01 15:37:36 在 Java / J2ME 提问

import   ……  
  public   class   RecordStoreTest   extends   MIDlet  
  {  
          public   RecordStoreTest(){}  
          public   void   startApp()   throws   MIDletStateChangeExcepetion  
          {  
                  RecordStore   rs   =   null;  
                  try{  
                          rs   =   RecordStore.openRecordStore("file1",true);  
                          //如果file1已存在,打开;否则创建file1  
                          byte   []   data   =   new   byte[4];  
                          for(int   j   =   0;j   <   2;j++)   //每次写入两个记录  
                          {  
                                  int   i   =   rs.getNextRecordeID();   //获得下一个记录号  
                                  data[0]   =   (byte)((i   >>   24)   &   0xff);     //??  
                                  data[1]   =   (byte)((i   >>   16)   &   0xff);     //??  
                                  data[2]   =   (byte)((i   >>   8)   &   0xff);       //??  
                                  data[3]   =   (byte)(i     &   0xff);                   //??  
                                  System.out.println("record   "+rs.addRecord(data,0,4)+"   is   added.");  
                          }  
  ……  
  请问,“??”问号的四个语句该如何注释,或者说这它们整体的功能是什么?谢谢! 问题点数:20、回复次数:2Top

1 楼xueyong1203(二当家的)回复于 2005-08-01 16:02:23 得分 10

i   为一int型变量,占4个字节  
  所以                         data[0]   =   (byte)((i   >>   24)   &   0xff);     //右移24位(3个字节),然后与0xff进行AND操作,得到这个int型变量中最高位那个字节的值  
                                  data[1]   =   (byte)((i   >>   16)   &   0xff);     //同上,右移16位2个字节,得到第二个字节的值  
                                  data[2]   =   (byte)((i   >>   8)   &   0xff);       //得到第三个字节的值  
                                  data[3]   =   (byte)(i     &   0xff);                   //得到最低位那个字节的值  
   
  举例,i   =   0x12345678,   则data[0]   =   0x12,   data[1]   =   0x34,   data[2]   =   0x56,   data[3]   =   0x78Top

2 楼homesos(熊猫贩子)回复于 2005-08-01 16:04:12 得分 10

//将int型数据进行分解,以将其转换为byte且不会丢失数据(int的位数要比byte的位数多,如果要将其进行转换存储,需要分解)  
  data[0]   =   (byte)((i   >>   24)   &   0xff);     //将特定位保留下来,正常顺序(从右到左)下的后八位的二进制,以方便转换成byte  
  data[1]   =   (byte)((i   >>   16)   &   0xff);     //将特定位保留下来,正常顺序(从右到左)下的16-24间的二进制,以方便转换成byte  
  data[2]   =   (byte)((i   >>   8)   &   0xff);   //将特定位保留下来,正常顺序(从右到左)下的8-16间的二进制,以方便转换成byte  
  data[3]   =   (byte)(i     &   0xff);       //将特定位保留下来,正常顺序(从右到左)下的前八位的二进制,以方便转换成byteTop

相关问题

  • 如何实现对象的持久化存储?
  • SOS : 关于SQL的存储过程的问题,help me
  • 一个关于存储过程的问题?help me!!!!
  • 存储过程
  • 存储过程
  • 存储过程
  • vb的存储
  • 存储过程
  • 存储对象???
  • 存储过程

关键词

  • recordstoretest
  • recordstore
  • rs
  • file1
  • byte

得分解答快速导航

  • 帖主:oostart
  • xueyong1203
  • homesos

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo