首页 arrow 本站论坛
J2ME游戏开发论坛
欢迎您, 游客
请您在右方表单注册或登陆.
J2ME中读取UTF-8格式编码文件中的数据报错 (1 个人正在浏览) (1) 游客
到底部
被收藏: 0
话题: J2ME中读取UTF-8格式编码文件中的数据报错
#1263
武藏野 (会员)
Junior Boarder
帖子: 37
graphgraph
该会员已离线 点此观看该会员的个人资料
J2ME中读取UTF-8格式编码文件中的数据报错 1 年, 11 月 之前 评分: 0  
今天有个项目有一个功能是在程序中读取SP方提供的一个UTF-8格式编码的文件(a.bin)中的数据,我使用的方法是DateInputStream中的ReadUTF方法,大致代码如下:
DataInputStream datin = new DataInputStream(this.getClass().getResourceAsStream("/a.bin");
String str = "";
if(datin != null)
{
try {
str = datin.readUTF();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("读取文件抛出异常";
}
System.out.println("str = "+str+"...";
}


java.io.EOFException
at java.io.DataInputStream.readFully(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at java.io.DataInputStream.readUTF(Unknown Source)
at Test1.read(Main.java:53)
at Main.main(Main.java:15)
由于机器速度原因,异常输出和我自己写的输出的先后顺序可能有问题,但是问什么我读取不到数据呢?是我的方法有问题,还是SP提供的.bin文件编码格式有问题呢? 如果我的方法有问题,那么怎样写才对能??


顺便抱怨一下从事手机单机游戏破解的大牛门一下
 
 
 
最后编辑: 2010-03-12 11:15 由: wuzangye.
 
慢慢混~~
  只有注册会员才能发帖
#1264
武藏野 (会员)
Junior Boarder
帖子: 37
graphgraph
该会员已离线 点此观看该会员的个人资料
回复:J2ME中读取UTF-8格式编码文件中的数据报错 1 年, 11 月 之前 评分: 0  
~~~ 抛弃readUTF方法改用read解决了问题~~~ 郁闷~~~ 对I/O的经验太少了!
 
 
 
慢慢混~~
  只有注册会员才能发帖
#1265
Wupei (管理员)
Moderator
帖子: 301
graph
该会员目前在线 点此观看该会员的个人资料
回复:J2ME中读取UTF-8格式编码文件中的数据报错 1 年, 11 月 之前 评分: 14  
是bin文件格式错误吧
在生成bin文件的时候使用writeUTF与之对应上就OK了
 
 
  只有注册会员才能发帖
#1266
武藏野 (会员)
Junior Boarder
帖子: 37
graphgraph
该会员已离线 点此观看该会员的个人资料
回复:J2ME中读取UTF-8格式编码文件中的数据报错 1 年, 11 月 之前 评分: 0  
问题是bin文件是人家给的,只告诉了是“UTF-8”编码,用UE打开中文部分全是乱码~~~ 我用的是直接read进一个BYTE数组,然后生成String(使用String(byte[ ] ,"UTF-8")构造函数),接下来处理这个String的内容~~~

最开始用readUTF方法报的是EOFException,API文档里面说的意思是遇到文件末尾~~ 搞不懂! 刚创建就read ,怎么 会碰到文件末尾呢!
 
 
 
最后编辑: 2010-03-13 09:26 由: wuzangye. 原因: 添加内容
 
慢慢混~~
  只有注册会员才能发帖
#1268
Wupei (管理员)
Moderator
帖子: 301
graph
该会员目前在线 点此观看该会员的个人资料
回复:J2ME中读取UTF-8格式编码文件中的数据报错 1 年, 11 月 之前 评分: 14  
那就是他的UTF的格式不太多~readUTF的数据格式与UTF不同,READUTF在前面需要读取UTF的标记位的~
所以说遇见文件末尾了~
 
 
  只有注册会员才能发帖
到顶部