package proj.Position; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class DownloadHelper { // Use android manager(2.3) to downlaod http file (not good!!!!!) // for (int i = 0; i < 30; i++) { // DownloadManager dm = (DownloadManager) // getSystemService(DOWNLOAD_SERVICE); // Request request = new Request( // Uri.parse("http://dl.dropbox.com/u/871055/iii.png")); // Uri.parse("http://i.imgur.com/XBqGN.jpg")); // // Uri uri = Uri // .parse("file:///mnt/sdcard/Position/test" + i + ".png"); // request.setDestinationUri(uri); // // request.setDescription("YAYA"); // dm.enqueue(request); // } public void downFile(String downloadURL, String savePath, String fileName) throws IOException, MalformedURLException { // set the download URL, a url that points to a file on the internet // this is the file to be downloaded URL url = new URL(downloadURL); // create the new connection HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); // set up some things on the connection urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(true); // and connect! urlConnection.connect(); // set the path where we want to save the file // in this case, going to save it on the root directory of the // sd card. // File SDCardRoot = Environment.getExternalStorageDirectory(); // create a new file, specifying the path, and the filename // which we want to save the file as. File file = new File(savePath, fileName); // this will be used to write the downloaded data into the file we // created FileOutputStream fileOutput = new FileOutputStream(file); // this will be used in reading the data from the internet InputStream inputStream = urlConnection.getInputStream(); // this is the total size of the file int totalSize = urlConnection.getContentLength(); // variable to store total downloaded bytes int downloadedSize = 0; // create a buffer... byte[] buffer = new byte[1024]; int bufferLength = 0; // used to store a temporary size of the // buffer // now, read through the input buffer and write the contents to the // file while ((bufferLength = inputStream.read(buffer)) > 0) { // add the data in the buffer to the file in the file output // stream (the file on the sd card fileOutput.write(buffer, 0, bufferLength); // add up the size so we know how much is downloaded downloadedSize += bufferLength; // this is where you would do something to report the prgress, // like this maybe updateProgress(downloadedSize, totalSize); } // close the output stream when done fileOutput.close(); // catch some possible errors... } public static void updateProgress(int currentSize, int totalSize) { // mProgressText.setText(Long.toString((currentSize / totalSize) * 100) // + "%"); } }