Как загрузить видеофайл на SD-карту?

У меня есть видеофайл (формат .MP4), и я хочу разрешить пользователю загружать видео на SD-карту. В настоящее время я использую этот код, но его не работает.

String PATHSdcard = "/sdcard/Video/"; public void DownloadFromUrl(String VideoURL, String fileName) try { URL url = new URL("https://javmed-prod.s3.amazonaws.com/666034cbe81045f2a2da50e5205e376b.mp4"); File file = new File(fileName); long sTime = System.currentTimeMillis(); URLConnection URLcon = url.openConnection(); InputStream is = URLcon.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(50); int current = 0; while ((current = bis.read()) != -1) { baf.append((byte) current); } FileOutputStream fos = new FileOutputStream(PATHSdcard+file); fos.write(baf.toByteArray()); fos.close(); } catch (IOException e) { Log.d("ERROR.......",e+""); } 

спасибо за любую помощь!

Попробуйте это решение

 package com.Video.ALLTestProject; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import android.content.Intent; import android.os.AsyncTask; import android.os.Environment; import android.util.Log; public class VideoSaveSDCARD extends Activity{ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ProgressBack PB = new ProgressBack(); PB.execute(""); } private class ProgressBack extends AsyncTask { ProgressDialog PD; @Override protected void onPreExecute() { PD= ProgressDialog.show(LoginPage.this,null, "Please Wait ...", true); PD.setCancelable(true); } @Override protected void doInBackground(String... arg0) { downloadFile("http://beta-vidizmo.com/hilton.mp4","Sample.mp4"); } protected void onPostExecute(Boolean result) { PD.dismiss(); } } private void downloadFile(String fileURL, String fileName) { try { String rootDir = Environment.getExternalStorageDirectory() + File.separator + "Video"; File rootFile = new File(rootDir); rootFile.mkdir(); URL url = new URL(fileURL); HttpURLConnection c = (HttpURLConnection) url.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); FileOutputStream f = new FileOutputStream(new File(rootFile, fileName)); InputStream in = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ((len1 = in.read(buffer)) > 0) { f.write(buffer, 0, len1); } f.close(); } catch (IOException e) { Log.d("Error....", e.toString()); } } 
  URL url = new URL(mp4url); //Open a connection to that URL. HttpsURLConnection con = (HttpsURLConnection) int response =con.getResponseCode(); InputStream is = con.getInputStream(); BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5); FileOutputStream outStream = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/" + "mnt/sdcard/17.mp4")); byte[] buff = new byte[7 * 1024]; int len; while ((len = inStream.read(buff)) != -1) { outStream.write(buff,0,len); } //clean up outStream.flush(); outStream.close(); inStream.close(); 
  • как возобновить прерванную загрузку - часть 2
  • Возможно ли инициировать запрос загрузки в браузере для распознанных типов MIME, используя только JavaScript (подход на стороне клиента)?
  • Как узнать размер файла перед его загрузкой?
  • Загрузить файл внутри WebView
  • Загрузите рабочую локальную копию веб-страницы
  • Android загружает двоичные файлы
  • ANDROID: Как загрузить видеофайл на SD-карту?
  • Обнаружение вредоносного файла в Chrome
  • Загрузите несколько файлов с помощью одного действия
  • Открыть текстовый файл в текстовом редакторе по умолчанию ... через Java?
  • Android написать в папку sd card
  • Давайте будем гением компьютера.