안드로이드 개발 질문/답변
(글 수 45,052)
어제 문의 드렸던 이하의 소스입니다.
BufferedReader reader = new BufferedReader(new InputStreamReader(mInput, "EUC-KR"));
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
위의 소스에서 line = reader.readLine() 부분이.. 무려... 20초나 걸립니다.. ㅜ(데이타는 그리 크지 않습니다. 21바이트입니다...)
그래서.. 이하의 형태로 수정하였습니다.
InputStreamReader reader = new InputStreamReader(mInput);
char[] w = new char[21];
int size = reader.read(w);
String line = new String(w,0,size);
위의 소스에서 line = reader.readLine() 부분이.. 20초에서... 6-10초로 줄였습니다.
2초 이하로 줄이고 싶은데... 고수님들의 답변 기다리겠습니다.
감사합니다.
BufferedReader reader = new BufferedReader(new InputStreamReader(mInput, "EUC-KR"));
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
위의 소스에서 line = reader.readLine() 부분이.. 무려... 20초나 걸립니다.. ㅜ(데이타는 그리 크지 않습니다. 21바이트입니다...)
그래서.. 이하의 형태로 수정하였습니다.
InputStreamReader reader = new InputStreamReader(mInput);
char[] w = new char[21];
int size = reader.read(w);
String line = new String(w,0,size);
위의 소스에서 line = reader.readLine() 부분이.. 20초에서... 6-10초로 줄였습니다.
2초 이하로 줄이고 싶은데... 고수님들의 답변 기다리겠습니다.
감사합니다.
String temp = null;
String text = "";
long start = System.currentTimeMillis();
while( (temp = br.readLine()) != null)
text += temp+"\n";
long end = System.currentTimeMillis();
tv.setText(text);
long gap = end - start;
Log("gap : " + gap + "ms", "letters : "+text.getBytes().length);
결과는 gap : 39ms letters : 11133
웹서버에서 받아왔고 총 11133글자 입니다. 그런데 39ms 밖에 걸리지 않았습니다.
실행은 에뮬에서 하였습니다.
데이터를 받아온 URL은 http://www.daegu.go.kr/rss/notice.xml 입니다.
스트림 객체의 문제는 아닙니다. 읽어오는 소스가 어딘지요? 소스 문제는 아닐까요?