Byte 배열로부터 String을 가져오는 방법입니다.

public String getStringFromByte( byte[] byteInput )

{

    StringBuffer sb = new StringBuffer();


    for( int i=0; i<byteInput.length; i++ )

    {

    // Processing Korean

        if( ( byteInput[i] & 0x80 ) == 0x80)

        {

            byte[] byteKorean = new byte[2];

            byteKorean[0] = byteInput[i];

            byteKorean[1] = byteInput[i++];

            sb.append( new String( byteKorean ) );

        }

        else if( (byteInput[i] & 0xFF) == 0 )

        {

       

        }

        else

        {

        sb.append( (char)byteInput[i] );

        }

    }

    

    return sb.toString();

}




그리고 Byte[] 배열로부터 숫자값을 가져오는 것은 다음과 같이 할 수 있습니다.

DataInputStream  in = new DataInputStream ( new FileInputStream( strFilePath ) );


if ( in != null )

{

int channelListVersion = in.readByte() & 0xFF;

int channelAntennaMode = in.readByte() & 0xFF;

int channelCount = ((in.readByte()) | (in.readByte() << 8)) & 0xFFFF;



물론, 이 바이너리 파일의 Endian 방식이 BigEndian인지, LittleEndian인지 등에 따라 계산하는 방식이
조금씩은 달라집니다. 
저작자 표시 비영리 변경 금지
Posted by snowdeer

댓글을 달아 주세요