[Android, java] byte[] -> String 변환?

프로그래밍/Android 2010.09.08 11:43 posted by 야매코더
요즘 안드로이드 변환작업을 하면서..

Sqlite 디비를 사용하다보면  문자열을 저장할땐 그대로 문자열로 저장을 하지만
가끔은 문자열을 바이너리로 저장해야 할때가 있습니다. Sqlite에서는  BLOB 형이라고 하더군요.

불러오면 바이트배열로 불러오게 되어서 다시 변환을 해야 합니다..

저같은 경우 sqlite에 저장할때 아이폰에서 사용하려고 만든 디비다 보니..
UTF-8로 저장이 되어 있는데 그대로 쓰고 있습니다.


간단하게 함수로 만들어서 문자열을 불러오고 있는데요..

소스를 보면..
 private String getData(int nCount) {
  
  String strReturnData="";
   
  // 1. 디비를 연다.
  DBHelper mDb = new DBHelper(this);
  SQLiteDatabase db = mDb.getReadableDatabase();
  
  // 2. 쿼리를 만들어 디비에서 데이타를 추출한다.
  String strQuery = "SELECT strData FROM table WHERE id =    " + nCount  ;
  Cursor cursor = db.rawQuery(strQuery, null);
  
  // 3. 데이타의 첫번째 위치로 이동한다.
  cursor.moveToFirst();
  
  // 4. 불러온 데이타를 문자열로 부른다.
  try {
      strReturnData = (new String(cursor.getBlob(0),  "utf-8")) ;
  } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
  } 
  
  return strReturnData;
 }

핵심은 

String(cursor.getBlob(0),  "utf-8"))  <- 이부분입니다..

뒤에 문자셋을 UTF-8 로 지정하면 저장한게 잘 불러지내요.. 문자열을 재 생성해서 사용하면 되는거죠.. 쉽죠?

오늘은 여기까지..^^


                                                                                   To be continued -夜昧-