首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

FileConnection怎么使用

2012-09-24 
FileConnection如何使用?由于要为手机理财JAccount增加数据导出到文本文件功能,我为其增加了exportToFile(

FileConnection如何使用?
由于要为手机理财JAccount增加数据导出到文本文件功能,我为其增加了exportToFile(String fileName)方法,使用Moto模拟器(A630)时发现装入JAR阶段已出错,错误的信息是:
ALERT: Unable to load class javax/microedition/io/file/FileConnection,RAZR_V3则正常.要知道,我从未打算为不同的手机制作不同的JAR,我计划是在代码中检查该手机是否支持FileConnection,若支持的话,菜单项才增加备份和恢复命令项.
如果所有不支持FileConnection的手机都不能装入的话,那不是只能为支持的开发一个版本,不支持的又开发另一个版本?
1 楼 ralphwho 2008-03-22   That is called fragmentation of J2ME.enjoy it 2 楼 iwinyeah 2008-03-22   Sorry,I don't know what you say.
Can't you tell me the details? 3 楼 iwinyeah 2008-03-23   经测试应该是环境设置有问题,在Eclipse外直接作Moto的模拟器就没有这个问题,不过我没时间弄明白具体如何解决. 4 楼 iwinyeah 2008-03-23   我在不支持FileConnection的真机philipse760上装入时还是出现了这个错误,麻烦了!不知道使用通用联网框架可否同样可以实现FileConnection功能呢?
5 楼 iwinyeah 2008-03-24   我使用StreamConnection在模拟器上实现了从文件输入和输出,倒是避开了FileConnection,但还有两个问题
1. 要实现备份和恢复功能一定会用到取文件列表,这就无法避开FileConnection了;
2. 使用StreamConnection,由于它没有提供Create方法,因而是不能创建文件的
只能往已有的文件上写(覆盖),这也很不爽.

看来,这事还真没法搞了,你不可能要求手机JVM不进行类的检查吧. 6 楼 ralphwho 2008-03-24   恩。如果你想是要备份成文本文件,然后用户能够轻松的把这个文件从手机里面拿出来再考到别的地方,就必须用JSR75 FileConnection,别的方式都不能实现,或者说不能保证一个通用的方法实现。JSR75是标准,如果手机支持就肯定能完成FileConnection的所有功能。但有的手机,并没有支持或者完全支持JSR75,你在Connector.open里面写"file://"要打开一个文件,它也能给你返回一个什么流让你做操作,但是只能是实现了部分的文件操作。如果用这样的方式操作文件,在一个机器上也许能够行,但是到了另一个机器上可能就不行了,因为没有规范说明不支持JSR75的机器在Connector.open方法中必须支持“file://”。这就是fragmentation了赫赫。

FileConnection是需要手机底层操作系统做支持的,如果手机没有宣称自己支持JSR75,那他就是不支持,我们开发者是没有办法让他支持的。

对于你的程序来说,我觉得,不支持JSR75的就不出现备份和恢复命令项就完了,不用做不同Jar。对于那些手机用户来说,他们只是损失了备份功能而已,其他功能照常用就OK了。 7 楼 iwinyeah 2008-03-24   我的意思也是这样啊,但实践证明这是行不通的,只要你的应用使用FileConnection,手机JVM装入类时就会递归式检查JAR内是否所有的类都可用或者JVM支持,如果有不支持的类,它就Exception,也就是说,应用还装入后还未运行就已出错了. 8 楼 ralphwho 2008-03-24   ok。明白了
摩托的机器我没用过
在我的Siemens的机器上,不支持JSR75,一样先能够运行着。
在我的Nokia E70,s60 v3系统的,不支持siemens的私有API,照样运行。
还没有出现你说的机器先要check一遍要用到的类,发现不支持的就不启动程序了的事情。

RAZR_V3是支持JSR75的,A630确实不支持。

还有,你用到FileConnection的类是不是在程序的第一个屏幕显示之前就要被初始化呢?
9 楼 ralphwho 2008-03-24   我又分析了一下,首先我记得KVM不像JVM在装载时会对jar做verify,j2me的verify是在打包的时候做的。所以我觉得,你可以在创建FileConnection实例的地方catch一下ClassNotFoundException和NoClassDefFoundError。你可以试试。
verify好象就是做一些支持和检查类的工作

热点排行