【问题标题】:Reading File in J2ME在 J2ME 中读取文件
【发布时间】:2011-02-21 11:48:28
【问题描述】:

我对这个简单的代码段感到非常不安:

FileConnection fc = (FileConnection) Connector.open("file:///root1/photos/2.png");
System.out.println(is.available());
byte[] fileBytes = new byte[is.available()];
int sizef = is.read(fileBytes);
System.out.println("filesize:"+sizef);

当我在我的移动设备中部署这个 midlet(具有正确的文件位置)它工作正常,即它显示正确的文件大小,但在 pc 模拟器中它不断给出文件大小:0。显然没有异常,我有正确的文件那个位置。

我在 netbeans 6.9 中使用 j2mewtk sdk。我尝试卸载、安装 wtk 和 netbeans。

另一件事是每次我运行模拟器时,它都会创建 C:\Users\Mahsruf\j2mewtk\2.5.2\appdb\temp.DefaultColorPhone6 新位置,例如 temp.DefaultColorPhone1,2,3,4 等。

如果我在 netbeans 中使用 jme SDK 3.0,文件大小仍然为 0,但现在在输出窗口中多了一行:[WARN] [rms ] javacall_file_open: _wopen failed for: C:\Users\Mahsruf\javame-sdk\3.0\work\0\appdb\_delete_notify.dat

我做错了什么?

【问题讨论】:

    标签: java netbeans java-me emulation


    【解决方案1】:

    这不是编码相关的问题。如果同一模拟器皮肤的多个实例同时运行,该工具包会为每个实例生成唯一的文件路径。例如,在 Windows 上,DefaultColorPhone 实例的文件路径名称可能为 workdir\appdb\temp.DefaultColorPhone1、workdir\appdb\temp.DefaultColorPhone2,等等。

    解决方案: 文件 workdir\appdb\DefaultColorPhone\in.use 跟踪标记为正在使用的存储根的数量。如果模拟器崩溃,需要删除in.use文件

    【讨论】:

    • 感谢它解决了多实例/文件夹问题。但是模拟器中的文件大小仍然为0!是不是有点奇怪!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多