首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

bcb写的二进制文件,java中怎么读取

2013-09-21 
bcb写的二进制文件,java中如何读取本帖最后由 fieldisme 于 2013-09-18 21:41:32 编辑遇到一个问题,做一个

bcb写的二进制文件,java中如何读取
本帖最后由 fieldisme 于 2013-09-18 21:41:32 编辑 遇到一个问题,做一个界面设计软件,将界面信息保存在一个文件中,用bcb写的,要将这个界在在安卓手机上显示出来,bcb的程序写好后,在java中读取时数据不正确,在java区问了没人能给合适的答案,请教这里的高手了。我之前从来没接触过java,这是逼着没办法了,都说java简单,可是没有指针的日子,我觉得好难过啊


//bcb存文件
struct DATA
{wchar_t a[100];
 int b;
wchar_t c[20];
}data;

FileStream *f=new FileStream("....",fmWrite);
...........
f.Write(&data,sizeof(DATA));

java中读取文件

class Data
{byte a[]=new byte[200];
 byte b[]=new byte[4];
 byte c[]=new byte[40];
};
//以下代码在窗口(activity)的onCreate事件中
Data data=new Data();
InputStream filestream;
filestream=getResources().openRawResource(R.raw.info);
filestream.read(data.a);
filestream.read(data.b);
filestream.read(data.c);
filestream.close();
//以下把byte转换成字符,得到的结果不正确,如果换Data的成员变量a或b数组数减少1,勉强正确,
//但结束符之后的仍然被显示
String res = EncodingUtils.getString(data.c, "UNICODE");    
//以下取出把b转换成int型,结果怎么都得不到正确值
int k=(((int)data.b[0]) << 24) + (((int)data.b[1]) << 16) + (((int)data.b[2]) << 8) + data.b[3];

[解决办法]
最好是CB中写XML文件,而后 JAVA中读XML . 
二进制文件是不兼容的。特别JAVA程序在非X86电脑上运行时,几乎注定出错。

热点排行