안드로이드 InputStream을 ByteArray로 바꾸기 (InputStream to ByteArray)
종종 InputStream으로 참조할 수 있는 데이터를 ByteArray-byte[]-로 바꿔야 할 때가 있다. 파일로 부터 읽어들인다든지 통신으로 읽어들인다든지 했는데, 이 데이터를 파싱하거나 가공해야 할 때 ByteArray로 변경해야 편할 때가 있다.
나의 경우에는 file을 AES로 암호화하기 위해 ByteArray로 변경할 필요가 있었다. 뭐 어쨌든 사연이 어떻게 됐든 용도가 어떻게 됐든지간에 필요할 때가 있다.
하기 함수를 이용하면 InputStream을 ByteArray로 바꿀 수 있다.
public static byte[] inputStreamToByteArray(InputStream is) {
byte[] resBytes = null;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int read = -1;
try {
while ( (read = is.read(buffer)) != -1 ) {
bos.write(buffer, 0, read);
}
resBytes = bos.toByteArray();
bos.close();
}
catch (IOException e) {
e.printStackTrace();
}
return resBytes;
}
InputStream을 ByteArray로 바꾸기 (InputStream to ByteArray)
또한 ByteArray를 InputStream으로도 바꿀 수 있다. 하기는 해당 코드이다.
public static InputStream byteArrayToInputStream(byte[] srcBytes) {
return new ByteArrayInputStream(srcBytes);
}
ByteArray를 InputStream으로 바꾸기 (ByteArray to InputStream)
ByteArray를 InputStream으로 바꾸는 것은 java.io 에서 기본으로 제공하기 때문에 코드가 졸라단순하다잘했어라이코스.
'IT, Programming > Android' 카테고리의 다른 글
안드로이드 Asset file 사용하기 (모두 읽어오기) (0) | 2014.08.29 |
---|---|
안드로이드 스테이터스 바(status bar) 높이 구하기 (1) | 2014.08.28 |
안드로이드 작업 기기(폰, 태블릿) DPI 알아내기 (0) | 2014.08.27 |
안드로이드 전체 charset 목록 정보 확인하기 (0) | 2014.08.27 |
안드로이드 ANT build 환경 구축하기 (0) | 2014.08.26 |