J2ME中的文件读写问题
来源:互联网 发布:淘宝菜鸟驿站怎么用 编辑:程序博客网 时间:2024/05/07 17:02
理论
- [file:///] 或者 [file://localhost/] 表示模拟器的根目录地址
- WTK2.5.1根目录为C:/Documents and Settings/Administrator/j2mewtk/2.5.2/appdb/DefaultColorPhone/filesystem
问题
- if( System.getProperty("microedition.io.file.FileConnection.version" ) == null ){
return;
}
try {
FileConnection fc = (FileConnection)Connector.open("file:///C:/CCC.txt", Connector.READ);
fc.creat();
}catch (java.lang.SecurityException e) {
System.out.println("fc failed!");
e.printStackTrace();
}
首先这段代码会抛出SecurityException 异常,就在Connector.Open()的时候,
那位达人能告诉我为什么么? 难道不能用FileConnection了吗?
另外还有问题是,在模拟器下运行时候, 这个"file:///C:/CCC.txt"的在哪儿里啊 ? 也就是说如果fc.create成功的话,这个ccc.txt应该在哪儿个路径下呢?
java.lang.SecurityException: Application not authorized to access the restricted API
没有权限读这个文件
你把Connetor.READ 改成 Connector.READ_WRITE
抛出SecurityException 异常, 说明你没有权限调用这个函数
基于设备安全考虑,一些函数必须经过签名才可以使用
这个在jsr118里头有提到
java.lang.SecurityException: Application not authorized to access the restricted API 异常.
我现在是在NOKIA的模拟器下使用的啊,
那如果要使用FileConnection , 需要如何 "签名" 才能使用呢?
签名需要购买
要在模拟器中读取文件,可临时将文件打包在jar文件中,然后用getResourceAsStream读取,如:
InputStreamReader reader = new InputStreamReader(this.getClass().getResourceAsStream("cced.dat"));
简要说明:
1、须将要读取的文件(如上cced.dat)包含在project中,编译器会将其压缩打包进jar文件。在NetBeans5.0中,我没找到直接包含文件的方法,只好先在project中新建一个空白文件cced.dat,然后将实际的cced.dat文件复盖这个空白文件
2、你可以在程序任何地方使用this.getClass().getResourceAsStream(filename),它会在project中找filename这个文件,你可能需要调试一下路径才能正确找到
3、缺点是,调用getResourceAsStream时它会将整个文件读入内存,因此文件不能太大
仔细的看了下FileConnection API 的介绍(http://www.sf.org.cn/Article/symbiandev/200510/396.html)
(不解)
这里面有访问权限问题
对于模拟器,也应该是手机平台,我们加安全管理器(SecurityManager)是为了限制手机之外的代码访问手机资源,而不是限制自己访问。对手机上自己的代码,只有使用bootclasspath加载就可以了,JVM会认为是系统代码,而授予AllPermission。
使用this.getClass().getResourceAsStream("conf.txt")的方法, 我用的Eclipse,所以很容易把文件加到工程里面. 谢谢各位
- J2ME中的文件读写问题
- j2me中读写文件查找的实例
- J2ME开发中的一些问题
- J2ME游戏中的图标问题~
- 彻底解决J2ME中的中文问题
- 彻底解决J2ME中的中文问题
- 彻底解决J2ME中的中文问题
- 彻底解决J2ME中的中文问题
- 彻底解决J2ME中的中文问题
- 彻底解决J2ME中的中文问题
- J2ME中的中文显示问题
- j2me上传文件的问题
- ZWeily的小品文(一)MFC中的文件读写问题
- 处理Python2.7读写文件中的中文乱码问题
- C#中的读写文件
- c中的文件读写
- Java中的文件读写
- python中的文件读写
- 再次学习Oracle的收获
- 多线程及其它
- 关于iterm的中文输入
- extjs技术之tree技术分析事件触发
- cocoa的KVO以及loadNib
- J2ME中的文件读写问题
- extjs可直接编辑节点的tree
- 我上传的资源怎么不显示
- 今天做了一个小测试,实现了VC++6.0与ACCESS2003数据库应用程序的登陆
- 电视代码
- Ext.Tree扩展CheckBox方法
- 杂记gcc&&make
- 对gcc的理解
- extJs tree add edit delete js代码