안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
보통 InputStream을 받아올때
1.
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[2048];
int k = 0;
// 인풋스트림 생성
is = mConn.getInputStream();
while (true) {
int readLen = is.read(buf);
if (readLen < 1) break;
k += readLen;
bos.write(buf, 0, readLen);
}
뭐 요런식으로 많이들 쓰던데요. 여기서 byte를 2048로 지정하는 이유(모자라지는 않을까요.)가 궁금하구요.
(아래 StringBuilder처럼 유동적으로 해놓는게 유리 하지 않을까 생각합니다.)
2.
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedREader (new InputStreamReader(conn.getInputStream()));
for (;;) {
String line = br.readLine();
if (line == null) break;
sb.append(line + '\n');
}
br.close();
와 차이가 있다면 어떤것인지도 궁금합니다.
즉.
1번에서 byte를 지정하고 쓰는이유.
1번과 2번의 차이점.
이 궁금합니다. 감사합니다. ^^




2번에서 사용하고 있는 BufferedReader도 내부적으로 1번과 같은 방식으로 읽어들입니다.