특정 URL에 있는 파일을 다운로드 받아서 storage로 저장을 하고 싶을때 아래와 같은 코드를 사용하여 작업할 수 있습니다.


InputStream inputStream = new URL(DownloadURL).openStream();
    
File file = new File(FileName);
OutputStream out = new FileOutputStream(file);
writeFile(inputStream, out);
out.close();

 위 코드에서 DownloadURL 부분과 FileName 부분만 원하시는 내용으로 채워서 사용하시면 됩니다. 사용된 writeFile 함수의 구현은 다음과 같습니다.


public void writeFile(InputStream is, OutputStream os) throws IOException
{
     int c = 0;
     while((c = is.read()) != -1)
         os.write(c);
     os.flush();
}  

 인터넷이 허용된 상태여야 다운로드를 받을 수 있기 때문에 AndroidManifest.xml 파일에 아래와 같이 추가 되어 있어야 에러가 나지 않습니다.


<uses-permission android:name="android.permission.INTERNET"/>

 만약 sdcard와 같은 곳으로 저장을 한다면 아래 내용도 추가를 해야합니다.


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 파일을 다운로드 받을 필요는 없고, 파일에 있는 값만 컨트롤 하고 싶으면 맨 위에 있는 소스에서 InputStream을 가지고 내용을 얻어와서 사용을 하면 됩니다.

저작자 표시
신고