Java的DataInputStream.readUTF和读取的字节数

Alb*_*ore 5 java java-me

我正在用JAVA(准确地说是J2ME)编写自定义存档格式。存档器可以正常运行,但是我在解存档方面几乎没有问题。

通过该readUTF方法读取UTF8字符串时,如何知道已读取多少字节?我知道使用writeUTF保存的字符串的前两个字节是字符串长度的短值,但是我想要一个更好的解决方案。

或者有什么方法可以知道在DataInputStream的末尾还剩下多少字节(该available方法似乎未返回有意义的值)。流是通过FileConnection打开的,即FileConnection.openDataInputStream

多谢你们!

aio*_*obe 4

我看不到直接使用 CLDC API 实现此目的的方法。然而,一个简单的解决方案是推出您自己的“CountingInputStream”,它扩展了 InputStream 并计算读取的字节数。您基本上只需要覆盖这三种读取方法。

文件大小可通过 FileConnection 获得。