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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值