반응형
주소 : http://blog.naver.com/PostView.nhn?blogId=q1q3q5&logNo=10099522351
- try {
- //다운로드 받을 URL에 대한 객체를 생성한다.
- //
- URL url = new URL("http://somewhere.com/some/webhosted/file");
- // URL로 부터 connection 객체를 를 생성한다.
- HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
- //생성된 커넥션에 대해 추가적인 설정을 지정한다. 여기서는 get방식의 요청을 설정
- urlConnection.setRequestMethod("GET");
- urlConnection.setDoOutput(true);
- //웹서버에 연결한다.
- urlConnection.connect();
- //파일을 저장하기 위한 경로를 지정한다.
- //이 예제에서는 sdcard의 root 디렉토리에 파일을 저장한다.
- //
- File SDCardRoot = Environment.getExternalStorageDirectory();
- //SDCard root 디렉토리에 somefile.txt 파일에 파일을 저장하기 위해
- //파일 객체를 생성한다.
- File file = new File(SDCardRoot,"somefile.ext");
- //파일을 오픈한다.
- FileOutputStream fileOutput = new FileOutputStream(file);
- //인터넷으로 부터 데이터를 읽어들이기 위한 입력스트림을 얻어온다.
- InputStream inputStream = urlConnection.getInputStream();
- //파일의 전체 크기를 얻어온다.
- int totalSize = urlConnection.getContentLength();
- //다운로드 받을 전체 바이트 크기를 변수에 저장한다.
- int downloadedSize = 0;
- //버퍼를 생성한다.
- byte[] buffer = new byte[1024];
- int bufferLength = 0; //임시로 사용할 버퍼의 크기 지정
- //입력버퍼로 부터 데이터를 읽어서 내용을 파일에 쓴다.
- while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
- //버퍼에 읽어들인 데이터를 파일에 쓴다.
- fileOutput.write(buffer, 0, bufferLength);
- //다운로드 받은 바이트수를 계산한다.
- downloadedSize += bufferLength;
- //progressDialog에 다운로드 받은 바이트수를 표시해 준다. <-따로 progressDialog스레드를 작성해둘것
- updateProgress(downloadedSize, totalSize);
- }
- //작업이 끝나면 파일을 close하여 저장한다.
- fileOutput.close();
- //예외가 발생한 경우 다음 catch 루틴을 처리한다.
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
반응형
'프로그래밍 정리 > 안드로이드' 카테고리의 다른 글
안드로이드 apk 자동설치 (0) | 2012.06.12 |
---|---|
서버에서 apk 파일을 받아와 자동 설치 하는 방법? (0) | 2012.06.12 |
데이터 다운로드는 내게! - DownloadManager 사용하기 (0) | 2012.06.12 |
어플등록 방법 (0) | 2012.06.11 |
서비스 강제종료(태스크 킬러, 메모리정리 등등)으로 죽었을 때 다시 살리기 (0) | 2012.06.11 |