Java程序对二进制流的读写

本文介绍如何使用Java将字符串和整数写入二进制流,并从二进制流中读取这些数据。提供了具体的方法实现,包括字节拷贝、整数和字符串的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

把字符串和整数放到二进制流

private void valuecpy(byte[] b,int start, int end,String strMsg){ byte[] cs = strMsg.getBytes(); for(byte c : cs){ b[start] = c; start++; if(start>=end) break; } } private void valuecpy(byte[] b,int start, int end,int nValue){ b[start] =(byte)(nValue&0x000000ff) ; b[start+1]=(byte)( (nValue&0x0000ff00) >> 8) ; b[start+2]=(byte)( (nValue&0x00ff0000) >> 16) ; b[start+3]=(byte)( (nValue&0xff000000) >> 24) ; }

从二进制流中取字符串和整数

private int getIntValue(byte [] b,int s,int e) { int nR=0; if(s+3<e) { nR = b[s] & 0xff; nR = nR + ( b[s+1]<<8 & 0x0000ff00 ); nR = nR + ( b[s+2]<<16 & 0x00ff0000 ); nR = nR + ( b[s+3]<<24 & 0xff000000 ); } return nR; } private String getStrValue(byte[] b,int s,int e) { byte[] tb=new byte[e-s+1]; int i=0; for(byte ee:tb) { tb[i++]=0; } i=0; for(byte ee:b) { if(i>=s && i<e) { tb[i-s]= b[i]; } else if(i>=e) { break; } i++; } String r=new String(tb); return r; }

其它可能要用到的函数

private void ZeroMem() { int i=0; m_packet = new byte[1024]; for(byte c:m_packet) { m_packet[i++]=0; } }

这样C语言中struct结构体变量可以对应到二进制流,而Java程序就可以从二进制流中取数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值