http://zhangmenshiting.baidu.com/data/music/364914/爱你.mp3?xcode=6ec4c4c4a43c4258577895e58b3b93ef
이주소의 mp3노래파일을 안드로이드 폰의 sdcard에 내려 받고 싶습니다.
넥s로 하는데 안되네요. 저 링크 클릭시 컴퓨터에서는 바로 받아집니다.
소스는
package com.moo.terrymooss;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
public class Mp3Down extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_sub_location);
try {
String DownloadURL = "http://zhangmenshiting.baidu.com/data/music/364914/爱你.mp3xcode=6ec4c4c4a43c4258577895e58b3b93ef";
String FileName = "/sdcard/exchange.mp3";
InputStream inputStream = new URL(DownloadURL).openStream();
File file = new File(FileName);
OutputStream out = new FileOutputStream(file);
saveRemoteFile(inputStream, out);
out.close();
Toast.makeText(getApplicationContext(), "시작", 2000).show();
} catch(Exception e){
// Logger.d("androes", "File Write Failed! /mnt/sdcard/exchange.xml");
e.printStackTrace();
}
}
public void saveRemoteFile(InputStream is, OutputStream os) throws IOException
{
int c = 0;
while((c = is.read()) != -1)
os.write(c);
os.flush();
Toast.makeText(getApplicationContext(), "완료", 2000).show();
}
}
인데 뭐가 잘못된건가요. ㅠㅠ 제발 알려주세요. 그냥 폰의 sdcard에 다운 받고 싶습니다.




그리고 스트림을 읽으실 때 1 byte 단위로 비교하시면 속도가 저하됩니다..
Byte 배열에 담아서 비교하시는게 좋을듯합니다