안녕하세요.


보통 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번의 차이점.


이 궁금합니다. 감사합니다. ^^