2012-04-15 1 views
0

패킷이 16 진수 파일로 저장되고 배열에 저장되는 파일을 읽고 싶습니다. 예를 들어 여기에는 세 개의 블록이 있으며 세 개의 개별 배열에 저장해야합니다. 배열은이 16 진수 문자열을 포함해야합니다. 누군가 제게 충고를 바르게 할 수 있었습니까? 내가 버퍼링 된 판독기와 문자열 버퍼를 사용하려했지만 각 블록을 다른 배열에 넣어야하므로 제대로 구현할 수 없었다.파일에서 16 진수 문자열 블록 읽기 및 배열을 Java로 배열에 넣기

00 04 75 8D 49 C7 00 01 03 CD 50 3 C 08 00 45 00 00 30 07 28 40 00 80 06 00 00 C0 EC 20 (C0)의 A8 A8 EC (1E) 04 05 00 17 단 (A2)에도 9e의 B3 00 00 00 00 70 02 FA F0 E1 2B 00 00 02 04 05 B4 01 01 04 02

00 01 03 CD 50 3 C 00 01 03 DD 4C 2D 08 00 45 00 00 30 00 00 40 00 40 06 E1 37 C0 A8 EC의 1E의 C0의 A8 EC 20 00 17 04 05 단의 5A B0 04 단 (A2)에도 9e의 B4 70 12 16 D0의 6A 직류 00 00 02 04 05 B4 01 01 04 02

00 04 75 8D 49 C7 00 01 03 cd 50 3c 08 00 45 00EC (20) (C0)의 A8 EC (1E) 04 05 00 17 단 (A2)에도 9e의 B4 단 5A의 B0 05 50 10 FA F0 A8 691,363,210 00 28 07 29 40 00 80 06 00 00 C0 59 AB 00

I는 최대했을 이,하지만 내가 원하는 방식으로 그것을 얻을 수 없습니다. 특히 각 블록을 구분하고 싶습니다.

BufferedReader br=null; 
    try{ 
    br = new BufferedReader(new FileReader(cmd)); 
    StringBuffer sb = new StringBuffer(); 
    String line; 
      while((line = br.readLine())!= null) 
      { 
      sb.append(line); 
      } 
    String [] store = sb.toString().split(" "); 
    pkt = store; 
    }catch(IOException ie) {ie.printStackTrace();} 
+3

이 있었다 가장 가까운을 믿고 당신의 시도를 게시하시기 바랍니다 일. – dasblinkenlight

+0

추가되었지만 완료되지 않았습니다. 고맙습니다. –

+1

질문에 코드를 포함하는 것이 가장 좋습니다. 수정 링크를 클릭하고 하단에서 적어도 한 줄 건너 뛰고 코드를 붙여 넣으십시오. 각 줄의 시작 부분에 4 개의 공백을 추가하여 코드를 페이지의 코드처럼 보이게하십시오. – dasblinkenlight

답변

1

당신은 분할을 사용하기 위해서는 당신의 라인 사이에 공백을 추가해야합니다.

sb.append(line).append(' '); 

또한 StringBuilder가 아니라 StringBuffer를 사용해야합니다.

0

배열을 목록에 넣을 수 있습니다. 당신은 루프의 끝에서 원하는대로

ArrayList<String[]> list = new ArrayList<String[]>(); 
    String line; 
    while((line = br.readLine())!= null) 
     { 
      if(!"".equals(line.trim())){ 
        list.add(line.split(" ")); 
      } 
     } 
0

당신이 필요로하는 배열 목록에 모든 패킷을 저장 한 다음 처리하는 것입니다

BufferedReader br=null; 
ArrayList<String[]> pkts = new ArrayList<String[]>(); 

try{ 
     br = new BufferedReader(new FileReader(cmd)); 

     String line; 
     while((line = br.readLine())!= null) 
     { 
      pkts.add(line.trim().toString().split(" ")); 
     } 

}catch(IOException ie) {ie.printStackTrace();} 

for(String[] pkt : pkts) { 
    // process your hex string array 
}