有一个二进制流is,里面按一定规则存放着int double,String 等类型的数据,比如这个流的前32位代表一个int型数据,接下来的64位代表一个double型数据. 接下来的的64位又代表一个double型数据 。。我用 DataInputStream dinreader = new DataInputStream(is);包装is
想要把它解析出来,请问应该用什么方法解析
想要把它解析出来,请问应该用什么方法解析
解决方案 »
- java的try catch的问题
- 谈爱情故事,谈观察者设计模式[转]
- 我有java数据结构与算法的问题~高手请帮忙看看~~第一次发帖,到处询问~不好意思。
- 请问怎样初始化四个数的平方和为1?
- 请帮我参考这段代码那里有错???
- $$$ 美国公司高薪聘请 ORACLE + JAVA 程序经理和 开发者
- 关于J2EE问题?
- 希望大家推荐一个在Linux下的编程工具!不要Jbuilder!
- JAVA里有得应用程序的版本,语言,公司...这些信息的类方法吗?..
- java线程怎么调用java的application.class?
- Eclipse中开发Web程序的环境选择
- 如何统计文本中字符串出现频率?
double d1 = dinreader.readDouble();
double d2 = dinreader.readDouble();
int leng = dinreader.read(buf);
ByteBuffer byteBuf = ByteBuffer.wrap(buf,0,leng);
int i1 = byteBuf.getInt();
double d1 = byteBuf.getDouble();
double d2 = byteBuf.getDouble();
如果是String ,得知道长度length,和起始位置offset.
String str = new String(buf,offset,length);
第一个数据 前32位:。第一块数据:64位,double
64位 double
若干位 String
第二块数据:64位,double
64位 double
若干位 String
。。若干块数据,该怎么解析
就像C里面的结构一样的typedef struct{
int xxxx;
double xxxx;
char ****[9];
double xxxxx;
}xxxx;就像这个一样,你必须知道,连续的每个字段的类型和长度,才能读正确
第一块数据:64位,double
64位 double
+32位长度信息(一个整数应该够用了,如果不够,用64位的long)
长度单位的string
....