2013-07-30 19 views
0

我知道關於ByteArrayInputStream的唯一方法是read(),但它只是返回一個整數。分析字節數組到android或java中的類

我有一個類,並在某個地方新建一個變量。那麼我將該函數的返回值存儲在devCfgBytes中,如何將其讀取爲int short或byte將其分配給對應的int變量或其他內容。我該怎麼辦?任何幫助表示讚賞。

public class ScrewCfg { 
    short u16size; 
    int u32crc; 
    boolean bEnable; 
    byte u8RstFreqDiv; 
    final static short screwCfgLegth = 438; 
    //... 
} 
//new obj in someplace 
ScrewCfg devCfg = new ScrewCfg(); 
//.... 
btnLoadConfig.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     byte[] devCfgBytes = new byte[ScrewCfg.screwCfgLegth]; 

     int ret = mcLib.ReadUserData(devCfgBytes, ScrewCfg.screwCfgLegth); 
     if(ret < 0){ 
      showMessage("Load Screw configuration Error!"); 
      return; 
     } 

     //any method like this? 
     //if i want to read it as boolean, then use one byte 
     //read it as integer, then use the four bytes 
     ByteArrayInputStream in = new ByteArrayInputStream(devCfgBytes, 1, 1); 
     DevCfg.bEnable = in.getBoolean(); 
     in = new ByteArrayInputStream(devCfgBytes, 2, 4); 
     DevCfg.u32crc = in.getInt(); 

    } 
}); 

回答