특정 URL에 있는 파일을 다운로드 받아서 storage로 저장을 하고 싶을때 아래와 같은 코드를 사용하여 작업할 수 있습니다.
InputStream inputStream = new URL(DownloadURL).openStream();
File file = new File(FileName);
OutputStream out = new FileOutputStream(file);
writeFile(inputStream, out);
out.close();
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();
}
{
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을 가지고 내용을 얻어와서 사용을 하면 됩니다.
핑백:Androes's NotePad
이 url을 이용해 apk 파일을 다운받고 바로 설치할 수 있는 방법이 있나요??
APK 파일을 Intent 로 Action_View 로 넘겨주면 될꺼에요^^