`
juansusan
  • 浏览: 71173 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

手机搜索开发日志(2)

阅读更多
RMS到底类似于内存还是外存?记录存储器更像一个文件,而不是一个数据库管理系统。使用RecordEnumeration接口可以在记录存储器中进行查询和排序。
for (int i = 1; i <= recordstore.getNumRecords(); i++)
recordstore的ID是从1开始,而非0开始。

现在遇到一个问题了,将“你好,涓涓细流”这个字符串转换成字节数组,之后又转换成字符串在S60中文模拟器中显示成“??????”,显然是显示错误,该怎么办?用DataInputStream的readUTF()方法输入可以正常输出汉字!


现在要编写用来保存复杂数据类型的记录的程序,怎么把需要的庞大的数据存储到手机里。

先调用ByteArrayOutputStream()构造函数创建字符数组输出流把数据写到缓冲区中,再调用DataOutputStream()构造函数输出字节数组输出流的数据输出流,此函数调用前者的应用。这个操作的目的是把数据写到缓冲区中,然后把缓冲区中的数据写到六种,然后再把数据流转换成一个字节数组,再把字节数组写到记录存储器中。

DataOutputStream类有吧特殊数据类型写到缓冲区的方法,是不是我上次遇到的不能正确显示中文的问题就可以借助DataOutputStream()得到解决呢?

flush():把缓冲区的数据放置到数据流中。
toByteArray():把数据流转换成字节数组。
reset():清空ByteArrayOutputStream对象内部所存储的数据。

查询记录
查询用的是过滤器实现的。
在netbeans中输入Filter,竟然报错说“找不到符号 类:Filter”,这是为什么呢?

利用rms实现信息的存储和查询

1.记录存储系统是在一个记录存储器中存储信息,所以要存储信息,首先要建立自己的记录存储器,相当于pc中的数据表。
private RecordStore recordstore = null;//新建一个RecordStore类的实例
recordstore = RecordStore.openRecordStore("我的记录存储器的名字",true);//true表示若我的记录存储器不存在,则新建一个名为“我的记录存储器”的记录存储器。
RecordStore类是RMS中唯一的一个类。

2.向recordstore记录存储器中写入记录   
try{
                byte[] outputRecord;//字节数组
                String outputString[] = {"娟", "婷", "珊"};//要存进recordstore的字符串数组
                int outputInteger[] = {15, 10, 5};//要存进recordstore的整数型数组
                ByteArrayOutputStream outputStream = new ByteArrayOutputStream();//字节数组输出流
                DataOutputStream outputDataStream = new DataOutputStream(outputStream);//数据输出流
                   //将数组中的信息写到数据输出流中
                for (int i = 0; i <3; i++){
                    outputDataStream.writeUTF(outputString[i]);//这个就是可以写汉字的函数吧,这里只是读到缓冲区中
                    outputDataStream.writeInt(outputInteger[i]);//这里只是读到缓冲区中
                    outputDataStream.flush();//把缓冲区的数据放置到数据流中
                    outputRecord = outputStream.toByteArray();//把数据流转换成字节数组
                    recordstore.addRecord(outputRecord, 0, outputRecord.length);//将字节数组写到记录存储器中
                    outputStream.reset();//清空ByteArrayOutputStream对象内部所存储的数据
                }
                outputStream.close();//关闭字节数组输出流
                outputDataStream.close();//关闭数组输出流
            }
            catch (Exception error){
                alert = new Alert("写错误", error.toString(), null, AlertType.WARNING);
                alert.setTimeout(Alert.FOREVER);
                display.setCurrent(alert);
            }

3.读存储记录
            try{
                String inputString;//
                byte[] byteInputData = new byte[300];
                ByteArrayInputStream inputStream = new ByteArrayInputStream(byteInputData);
                DataInputStream inputDataStream = new DataInputStream(inputStream);
                //以下到002是练习过滤器查询复杂数据记录
                if (recordstore.getNumRecords() > 0){
                    filter = new Filter("珊");
                    recordEnumeration = recordstore.enumerateRecords(filter, null, false);
                    while (recordEnumeration.hasNextElement()){
                        recordstore.getRecord(recordEnumeration.nextRecordId(), byteInputData, 0);
                        inputString = inputDataStream.readUTF() + " " + inputDataStream.readInt();
                        alert = new Alert("Reading", inputString, null, AlertType.WARNING);
                        alert.setTimeout(Alert.FOREVER);
                        display.setCurrent(alert);
                    }
                }
                inputStream.close();
            }
            catch (Exception error){
                alert = new Alert("Error Reading", error.toString(), null, AlertType.WARNING);
                alert.setTimeout(Alert.FOREVER);
                display.setCurrent(alert);
            }

4.关闭记录存储器
try{
                recordstore.closeRecordStore();
            }
            catch (Exception error){
                alert = new Alert("Error Closing", error.toString(), null, AlertType.WARNING);
                alert.setTimeout(Alert.FOREVER);
                display.setCurrent(alert);
            }

5.删除记录存储器
if (RecordStore.listRecordStores() != null){
                try{
                    RecordStore.deleteRecordStore("DalianBus");
                }
                catch (Exception error){
                    alert = new Alert("Error Creating", error.toString(), null, AlertType.WARNING);
                    alert.setTimeout(Alert.FOREVER);
                    display.setCurrent(alert);
                }
            }

明天要解决的问题:怎么利用RMS存储如此庞大的数据信息!
分享到:
评论

相关推荐

    unity3D日志输出插件 Editor Console Pro3.9

    Editor Console Pro 是 Unity 编辑器控制台的强大替代品。 2017 Unity Mobile Essentials 资源包的一部分! 必备的 Unity 插件 [Gamasutra] 开发拳击俱乐部时使用的 Unity ...- 使用远程日志记录获取独立版本或手机/平

    泛微OA-ecology日志下载工具安装包.7z

    泛微的OA产品,已经进化成为“统一组织、统一消息、统一应用、统一搜索、统一报表”的移动办公门户平台,这是我在本次大会上亲眼目睹到的。 泛微的OA已经成为企业运营管控平台和信息化的集成平台,是全员信息化的...

    企业网站系统电脑手机微信三合一 v4.0

    企业网站系统电脑手机微信三合一 V4.0 是慧通网络工作室专业为企业建站而开发的一款网站程序,包含电脑端和手机端平板端三个版本。拥有完善的网站前后台,并特别根据企业网站的特点开发出独具特色的栏目和功能。无缝...

    最新基于SSM框架ssm美好生活日志网.zip

    2. **日志撰写与管理**:用户可以撰写自己的生活日志,包括文字、图片和视频等内容,并对已发布的日志进行管理和编辑。 3. **分类标签**:用户在撰写日志时可以添加分类标签,便于其他用户根据兴趣进行内容筛选和...

    android开发资料大全

    android开发环境之Logcat(日志)教程实例汇总 android网络通信之socket教程实例汇总 AsyncTask进度条加载网站数据到ListView 命令行开发、编译、打包Android应用程序汇总大全 Android 动画效果二 Frame Animation ...

    OpenWBS 电商系统(手机端+PC端+微信+分销) X5.3.6

    OpenWBS X5.3.4_190909 更新日志V5企业标准版无X5企业电商版修改:修复手机端搜索按钮跳转到首页的问题;增加:会员删除订单功能;增加:后台订单列表和导出增加会员是否已删除此订单字段数据显示;OpenWBS X5.3.3_...

    可视化网页开发工具 ePage 0.41版

    ◆ 兼容各种型号手机及浏览器统一解决方案,从可视化开发环境到部署发布一键完成 ◆ 前后台代码统一集成化设计,前后台代码全部统一采用JavascriptV8,开发者无需使用多种编程语言进行前后台设计 ◆ 高度集成化的...

    blog.zip_手机性能

    功能介绍 支持日志url自定义,对搜索引擎更为友好 独有的碎语(微博)功能,让你用简单的文字记录生活 一键式更换模板,方便快捷打造个性博客 清爽的日志撰写页面、配以自动保存,书写博文更加舒适无忧 日志草稿箱...

    慧通企业网站电脑手机微信三合一 v1.0.rar

    慧通企业网站系统电脑手机微信三合一是专业为企业建站而开发的一款网站程序,包含电脑端和手机端平板端三个版本。拥有完善的网站前后台,并特别根据企业网站的特点开发出独具特色的栏目和功能。无缝对接电脑、智能...

    ASPNETMVC5+EF+Bootstrap+T4通用权限开发平台

    5、操作日志管理:日志搜索。 6、图标附录:Bootstrap图标查找。 7、个人资料:个人增册改查。 8、修改密码:修改密码。 9、配置管理:配置字典增册改查。 三、源码特点 1、网站布局:采用目前最先进Bootstrap...

    宽屏教程网源码(带手机版) v3.99.rar

    首页开发简单模式的栏目板块,可在后台上传板块图标与栏目名称,并可切换栏目板块为简单或丰富2种模式。 网站所有广告位都可在后台关闭。 前台的所有功能都可以在后台控制,具体的信息请浏览官网的“前后台对照”...

    Atom的APICloud开发工具APICloud-For-Atom.zip

    安装Atom编辑器中,搜索并安装 package: apicloud特性支持 Mac/Windows/Linux等主流操作系统;基于 apicloud-tools-core 核心工具库开发;包含四个默认应用模板与26个默认页面模板;支持 WiFi 增量/全量 更新;基于...

    网展企业网站系统(带手机版)v6.9.rar

    网展企业网站系统(带手机版)v6.9 更新日志 全新改版,增加手机版功能,手机端访问自动调整界面。 网展企业网站系统功能 1、具备传统企业网站基本、高级用户交互功能;(公司介绍、新闻、产品、案例、下载、营销...

    C#程序开发范例宝典(第2版).part08

    一部久享盛誉的程序开发宝典。精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更多实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后...

    .net开源的综合开发框架wojilu框架.zip

    “我记录”这套源码总共包括 两个部分:一个 .net 平台下的全栈式、轻量级开发框架,包括 ORM、MVC、IOC、AOP、JSON、LOG 等,同时包括全套图文教程;用这个框架开发的 SNS 互联网产品。本产品以 SNS 为基础平台,...

    OpenWBS 企业建站CMS(手机+PC+微信) v5.3.6

    OpenWBS X5.3.4_190909 更新日志V5企业标准版无X5企业电商版修改:修复手机端搜索按钮跳转到首页的问题;增加:会员删除订单功能;增加:后台订单列表和导出增加会员是否已删除此订单字段数据显示;OpenWBS X5.3.3_...

Global site tag (gtag.js) - Google Analytics