`
juansusan
  • 浏览: 72760 次
  • 性别: 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存储如此庞大的数据信息!
分享到:
评论

相关推荐

    android版手机日志程序

    在Android平台上,手机日志程序是一个非常实用的工具,它能够帮助开发者和用户记录并分析设备上的各种系统和应用日志。"android版手机日志程序"作为一个专门为Android设计的日志收集工具,它包含了以下几个核心知识...

    苹果手机ios抓取蓝牙HCI日志

    首先,我们要明确,iOS是苹果公司开发的操作系统,专用于iPhone、iPad、iPod Touch等设备。而HCI是蓝牙协议的一部分,它定义了主机(host)与控制器(controller)之间的通信接口。以下内容将详细解释如何在iOS设备...

    android端/手机端日志查看工具

    - **搜索功能**:内置搜索功能,可以快速查找包含特定字符串的日志条目。 - **Markdown支持**:允许使用Markdown格式来格式化日志输出,使得日志更易读。 - **保存和分享**:可以将日志保存到本地或通过邮件分享...

    安卓日志分析崩溃拦截相关-android端手机端日志查看工具.rar

    压缩包中的"android端_手机端日志查看工具"可能是开发者编写的用于辅助查看日志的应用,它可能包含了读取设备Logcat信息、过滤、搜索等功能的代码,对于理解和学习日志处理很有价值。同时,如果提供的代码包含崩溃...

    BREW 生成日志代码

    8. **日志查看器**:为了便于分析,可能会开发一个单独的日志查看工具,它可以解析和过滤日志文件,提供搜索和分析功能。 9. **异常处理**:在记录日志时,应处理可能的异常情况,如磁盘满或网络连接问题,确保即使...

    unity上面打印出来日志

    2. 控制台日志清理:在不需要日志时,可以禁用控制台输出,以提高性能。 3. 日志记录策略:在生产环境中,考虑将日志记录到文件系统或远程服务器,以便于后期分析。 4. 错误处理:对于严重错误,除了输出日志外,还...

    手机日志系统的设计与实现.doc

    2. 数据存储:由于手机内存和存储空间有限,日志系统需要有效地管理存储。J2ME支持在本地存储日志数据,减少对网络流量的消耗。同时,应考虑如何定期清理或压缩旧日志,防止存储空间耗尽。 3. 用户界面:设计简洁...

    手机屏幕打印log日志unity 项目源码

    7. 可能的扩展功能:如过滤特定类型的日志,搜索日志,保存日志到本地或网络。 这个项目对Unity开发者来说是一个很好的学习资源,可以帮助他们了解如何在移动设备上实现自定义的日志系统,提升开发效率和问题解决...

    探究基于Android的手机搜索定位应用开发.pdf

    【Android手机搜索定位应用开发】 随着科技进步,我国已经步入4G时代,智能手机的搜索定位功能愈发受到重视。Android操作系统作为手机智能系统的一种,以其良好的兼容性和开放性,为开发基于Android的搜索定位应用...

    Unity Debug打印日志插件,解决上线日志大量输出,影响游戏性能问题

    2. **日志级别**:允许开发者定义不同级别的日志,如调试(Debug)、信息(Info)、警告(Warning)和错误(Error),并根据需要只显示特定级别的日志。 3. **日志过滤**:根据关键字或者类名进行日志过滤,只显示...

    Android日志获取工具

    3. **Logcat Explorer**:这个应用程序允许你在Android设备上直接查看和管理日志,支持日志保存、过滤和搜索功能。 4. **ACRA (Application Crash Report for Android)**:Google提供的一个开源库,用于自动收集...

    手机微博实时日志经验谈--饶琛琳1

    本文主要探讨的是手机微博实时日志处理的经验,特别是在使用ELK(Elasticsearch、Logstash、...通过自建ELK栈,微博能够实现对海量日志数据的实时搜索和监控,这对于提升服务质量和保障用户信息安全具有重要意义。

    Android日志管理程序

    其次,自动获取手机当前时间是日志记录中的一项基本要素,因为准确的时间戳对于追踪事件的顺序和分析问题的起因至关重要。每条日志都会附带生成时的时间,这样可以清晰地了解何时发生了什么事件,有助于问题定位和...

    使用Java开发手机电子地图系统

    在Java开发领域,构建手机电子地图系统是一项复杂而有趣的工作,它涉及到许多核心技术和概念。以下将详细解析这个项目中的关键知识点。 首先,我们要理解Java作为编程语言在移动开发中的应用。Java是一种跨平台的...

    日志520 qq空间日志大全触屏版自适应手机空间网站模板下载.zip

    【标题】中的“日志520 qq空间日志大全触屏版自适应手机空间网站模板下载”揭示了这是一个专为QQ空间日志设计的、适用于触屏设备的网站模板集合,用户可以下载用于创建或优化自己的手机网页,提供更好的浏览体验。...

    Python 基于 Qt PySide6 的通用日志分析工具源码.zip

    这可能包括日志文件的选择器、搜索框、显示日志条目的表格视图,以及各种控制按钮如过滤、排序和导出。 6. **事件驱动编程**:Qt采用事件驱动模型,当用户与界面交互时,如点击按钮或选择文件,都会触发相应的事件...

    最新织梦手机版基础开发框架 全开源 挺好用的

    2. **admin-** 开头的文件:这些文件通常是后台管理界面的部分,例如`admin-table.html`可能是用于数据列表展示的页面,`admin-index.html`可能是后台首页,`admin-form.html`用于表单编辑和提交,`admin-log.html`...

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

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

    ASP个人日志系统的设计与实现(源代码+论文).zip

    2. 日志撰写:用户可以发布新的日志条目,包括标题、内容、日期等信息。 3. 日志查看:用户可以查看自己的所有日志,也可以按照日期、标签等条件进行筛选。 4. 编辑与删除:用户可以编辑已发布的日志,或者删除不再...

    日志发布系统_静态页面和数据库结构设计

    2. **关系定义**:明确实体间的关联,如用户与日志的一对多关系,日志与评论的多对多关系。 3. **属性设计**:为每个实体定义合适的属性,如用户有用户名、密码、邮箱等属性,日志有标题、内容、发布时间等属性。 4....

Global site tag (gtag.js) - Google Analytics