[問題] 一長串資料解析
各位先進好:
小弟今天有一台設備,假設回應資料的長度會有,250bytes, 120bytes, 60bytes
這250bytes,假設依照規格總共可以解析出10個欄位(欄位編號為A,B,C,D,E,F,G,H,I,J)
120bytes,可以解析出6個欄位(欄位編號為 A,D,E,F,I,J)
60bytes,可以解析出3個欄位 (欄位編號為 B,C,D)
250個bytes等於是完整的所有資料回覆
如果有錯誤,就是回應120bytes跟60bytes
我目前想到的方法是用一個class類似這樣
Public Class DataParser{
private byte[] a= new byte[10];
private byte[] b= new byte[5];
private byte[] c= new byte[3];
....//以此類推新增到 j
private byte[] j= new byte[5];
public void parse(byte[] data){
if(長度為250){
//解析到10個欄位中, a,b,c,d,e,f,g,h,i,j
} else if(長度為120) {
//解析到6個欄位中
} else if (長度為60) {
//解析到3個欄位中
} else {//error, 未知長度}
}
public byte[] getA(){ return a;}
public byte[] getB(){ return b;}
....
public byte[] getJ(){ return j;}
}
這是我目前想到最直覺得方法
但是實際上可能我的欄位不止10個
可能會達到50個以上,接收要解析的資料長度,最大不會超過300bytes
但這樣的方式是否會有太多byte array的變數,使用太多記憶體呢
不知道是不是有其它思考的方向可以提供給我做參考
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.81.123.49
※ 文章網址: https://www.ptt.cc/bbs/java/M.1431402212.A.8A6.html
推
05/12 20:45, , 1F
05/12 20:45, 1F
→
05/12 20:46, , 2F
05/12 20:46, 2F
→
05/13 12:12, , 3F
05/13 12:12, 3F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章