Как сохранить файл с сайта на SDCard

Кто-нибудь знает, как сохранить файл с веб-сервера (локального хоста) на SD-карту через Wi-Fi?

Я делаю xml-анализ в моем приложении, и для этого мне нужно загрузить XML-файл с localhost на SD-карту, а затем пометить разбор. Я застрял в загрузке xml-файла на SD-карту. Расскажите, пожалуйста, как это сделать.

Solutions Collecting From Web of "Как сохранить файл с сайта на SDCard"

Вы можете использовать этот метод для загрузки файла из Интернета на SD-карту:

public void DownloadFromUrl(String DownloadUrl, String fileName) { try { File root = android.os.Environment.getExternalStorageDirectory(); File dir = new File (root.getAbsolutePath() + "/xmls"); if(dir.exists()==false) { dir.mkdirs(); } URL url = new URL(DownloadUrl); //you can write here any link File file = new File(dir, fileName); long startTime = System.currentTimeMillis(); Log.d("DownloadManager", "download begining"); Log.d("DownloadManager", "download url:" + url); Log.d("DownloadManager", "downloaded file name:" + fileName); /* Open a connection to that URL. */ URLConnection ucon = url.openConnection(); /* * Define InputStreams to read from the URLConnection. */ InputStream is = ucon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); /* * Read bytes to the Buffer until there is nothing more to read(-1). */ ByteArrayBuffer baf = new ByteArrayBuffer(5000); int current = 0; while ((current = bis.read()) != -1) { baf.append((byte) current); } /* Convert the Bytes read to a String. */ FileOutputStream fos = new FileOutputStream(file); fos.write(baf.toByteArray()); fos.flush(); fos.close(); Log.d("DownloadManager", "download ready in" + ((System.currentTimeMillis() - startTime) / 1000) + " sec"); } catch (IOException e) { Log.d("DownloadManager", "Error: " + e); } } 

Вам необходимо добавить следующие разрешения для вашего AndroidManifest.xml:

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

Ответ Сурава в порядке, но для больших размеров файлов вы должны реализовать его на новом потоке; Потому что во время загрузки основной поток занят для загрузки файла. Если время ожидания больше ожидаемого, система будет генерировать ошибку «Не реагировать».

Для этого вы можете использовать « TaskAsync » или « IntentService »,

Я предпочитаю создавать soap-сервер и делать вызов из приложения на сервер и получать XML-код. Или, может быть, вы можете просто создать URL-адрес, который генерирует XML и который просто анализирует URL-адрес напрямую.

Попытайтесь больше узнать об этой ССЫЛКЕ

Надеюсь, я отвечу на вопрос. В противном случае было бы приятно помочь, но мне нужно более подробное описание функциональности.