`
pumpkin
  • 浏览: 7765 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

J2ME 输入流问题

    博客分类:
  • J2ME
阅读更多
最近在做一个手机项目,在调用JSR75 api的时候除了一点小问题,几经折磨终于解决。

一般J2ME应用程序读取的文件分布在本身的jar包里或者是直接读取手机存储卡中的文件。

弱是读取jar包里带的文件,用:

DataInputStream datainputstream = new DataInputStream(getClass().getResourceAsStream(location));


调用的时候需要获取文件大小,用:

return datainputstream.available();


如果是读手机存储卡中的文件,就不能如此获取输入流了,需要:

FileConnection fc = (FileConnection) Connector.open(location, Connector.READ);
DataInputStream datainputstream = fc.openDataInputStream();


这里就要注意了,虽然两种方式返回的都是DataInputStream对象,但是在读文件大小的时候却不能再调用available()方法。

需要:

return (int) fc.fileSize();


如果调用available()方法,恭喜你,等着报异常吧,因为此时返回的文件长度必然是0。
分享到:
评论

相关推荐

    j2me实例问题讲解

    **J2ME实例问题讲解** J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专为资源有限的嵌入式设备和移动设备设计。它提供了开发和部署移动应用程序的框架,适用于手机、智能手表、电视等设备。在实际开发...

    j2me可以用ZIP算法

    通过创建这些流对象,你可以将输入流或输出流转换为 GZIP 格式,从而实现数据的压缩和解压缩。 3. **在 J2ME 中使用 ZIP 和 GZIP 的示例**: - **压缩**:首先,创建一个 `ZipOutputStream` 或 `GZIPOutputStream`...

    J2me存储和连接详解

    在这个例子中,首先通过`Connector.open()`方法创建了一个`HttpConnection`对象,然后通过`openInputStream()`方法获取输入流,最后通过循环读取数据。 #### 总结 J2ME的RMS存储系统和网络连接能力是其核心功能之...

    J2ME小游戏合集很实用

    8. **J2me手机泡泡堂游戏源码**:泡泡堂是一款多人在线对战游戏,它的J2ME实现则涉及到网络通信、游戏状态同步等问题,对于理解J2ME的网络编程和实时游戏设计非常有价值。 9. **落日恶魔游戏附源代码(J2ME)**:这款...

    j2me http通信demo

    `openInputStream()`方法打开与服务器的连接并返回输入流,你可以从中读取响应数据。 对于POST请求,你需要设置请求头和正文内容: ```java httpConn.setRequestMethod(HttpConnection.POST); OutputStream os = ...

    J2ME学习资料打包下载

    6. **用户界面设计**:考虑到小屏幕和有限的输入设备,设计适应移动设备的用户界面是一项挑战。开发者需要学会如何利用有限的GUI组件创建直观且易于使用的界面。 总之,这份J2ME学习资料打包下载涵盖了从基础到进阶...

    J2me 游戏源代码

    开发者可以通过这个源代码了解如何在J2ME平台上实现逻辑游戏的图形界面,处理用户输入,以及存储和验证游戏状态。 学习J2ME游戏源代码可以涵盖以下几个关键知识点: 1. **MIDP API**:了解如何使用MIDP提供的类和...

    J2ME平台的RSSReader

    首先创建一个URL字符串,然后通过`Connector.open()`方法打开连接,最后读取响应的输入流。 2. **XML解析**:由于RSS数据是以XML格式存储的,所以需要解析XML以提取所需的信息,如标题、链接和摘要。J2ME通常使用`...

    J2ME 经典小游戏

    J2ME游戏通常基于事件驱动编程,使用键盘、触摸屏输入进行交互。游戏循环包括初始化、渲染、处理输入和更新游戏状态等步骤。例如,一个简单的游戏可能包括一个主循环,不断检测用户的按键动作,并根据这些动作更新...

    j2me_https.rar_ j2me-https_j2me_j2me htt_j2me htt_j2me https

    - 发送和接收数据:使用SSLSocket的输入和输出流进行数据交换。 5. **错误处理**:在实际开发中,需要考虑网络中断、证书验证失败等各种异常情况,确保程序的健壮性。 压缩包中的"在J2ME中使用Socket通过cmwap接...

    J2ME 常用组件介绍

    **J2ME(Java 2 Micro Edition)**是Java平台的一个子集,主要用于移动设备、嵌入式系统等资源受限的环境。它提供了一个开发和部署应用程序的框架,包括用户界面组件、网络通信功能和数据存储机制。这篇博客将深入...

    J2ME游戏的基本结构

    MIDP 2.0 引入了 javax.microedition.media 模块,使得开发者能够播放 MIDI 和 WAV 文件,或者通过流媒体协议播放远程音频资源。 八、数据存储 J2ME 提供了 RecordStore API 来持久化数据。开发者可以创建、读取、...

    J2ME里面的线程和网络

    6. **流处理**:在读写网络数据时,通常会用到InputStream和OutputStream,它们提供了读取和写入字节流的接口。 7. **异步网络操作**:为避免阻塞主线程,J2ME鼓励使用回调或事件驱动的方式处理网络请求,如使用...

    J2ME模拟器模拟2007版的手机QQ

    值得注意的是,由于2007年的QQ版本可能不支持现代的网络协议和安全标准,因此在模拟器中运行时可能会遇到连接问题。此外,模拟器可能无法完全模拟真实设备的所有硬件特性,例如传感器或网络速度,这可能会影响某些...

    j2me api/中文开发文档

    1. **基础类库**:包括基本数据类型、集合框架、输入/输出流、线程管理和异常处理等。这些类库是所有J2ME应用程序的基础。 2. **MIDP API**:这是J2ME用于开发移动应用的主要部分,包含了用户界面组件(如Canvas和...

    J2ME开发中解析XML

    - **从网络接收XML**:对于网络来源的数据,可以通过`HttpConnection`打开输入流并创建解析器: ```java HttpConnection conn = ...; // 获取HttpConnection实例 InputStreamReader doc = new InputStreamReader...

    j2me socket编程

    2. 获取输入流和输出流对象,然后就可以通过这些流进行数据传输。 ### 3. 数据传输 - **读取数据**:使用 `InputStream` 对象读取来自服务器的数据。可以使用 `read()` 或 `readBytes()` 方法。 - **写入数据**:...

    j2me zip 压缩及解压,不支持gzip格式

    4. 将`ZipEntry`写入`ZipOutputStream`,然后打开该文件的输入流。 5. 使用`java.io.InputStream`和`java.io.OutputStream`读取源文件并写入`ZipOutputStream`,实现文件内容的压缩。 6. 关闭所有打开的流。 解压缩...

    j2me框架_用J2ME的通用联网框架开发联网.pdf

    如果成功,我们读取输入流,处理响应内容的类型和数据。 `HttpConnection`类提供了设置请求方法(如GET、POST、PUT等)和请求头的方法,以及获取响应码、类型和长度的接口。注意,`getResponseCode()`方法会实际...

    j2me手机游戏,功能齐全

    Java 2 Micro Edition(J2ME)是一种专为资源有限的设备,如早期的移动电话和掌上设备设计的Java平台。在这个特定的上下文中,我们讨论的是基于J2ME开发的手机游戏,这些游戏在功能手机时代非常流行,提供了各种各样...

Global site tag (gtag.js) - Google Analytics