下载文件到指定sd卡目录下(AsyncTask)

2020-12-23  本文已影响0人  小慧sir
         try {
                    url = new URL("http://hiphotos.baidu.com/baidu/pic/item/7d8aebfebf3f9e125c6008d8.jpg");
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
                for (int i = 0; i < 1; i++) {

                    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) // 判断是否可以对SDcard进行操作
                    {      // 获取SDCard指定目录下
                        String sdCardDir = Environment.getExternalStorageDirectory() + "/testpic/";
                        File dirFile = new File(sdCardDir);  //目录转化成文件夹
                        if (!dirFile.exists()) {                //如果不存在,那就建立这个文件夹
                            dirFile.mkdirs();
                        }
                        try {//System.currentTimeMillis()
                            raf = new RandomAccessFile(sdCardDir + new File(String.valueOf(url)).getName(), "rw");
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        }

                        AsyncTask<URL, Integer, String> execute = new LoadImageAsyncTask(raf).execute(url);

                        Toast.makeText(MainActivity.this, "保存已经至" + Environment.getExternalStorageDirectory() + "/testpic/" + "目录文件夹下", Toast.LENGTH_SHORT).show();
                    }
                }
  class LoadImageAsyncTask extends AsyncTask<URL, Integer, String> {
        private RandomAccessFile raf1;

        public LoadImageAsyncTask(RandomAccessFile raf) {
            this.raf1 = raf;

        }


        @Override

        protected String doInBackground(URL... urls) {
            try {
                HttpURLConnection conn = (HttpURLConnection) urls[0].openConnection();

                InputStream in = conn.getInputStream();

                Log.d("inooo", in.toString());


                byte[] buff = new byte[2048];

                int hasRead = 0;

                while ((hasRead = in.read(buff)) > 0) {
                    raf1.write(buff, 0, hasRead);

                    Log.d("hasRead", hasRead + "");

                }
                in.close();
        conn.disconnect();


            } catch (IOException e) {
                e.printStackTrace();
                Log.d(TAG, "e.printStackTrace: " + e.toString());
            }


            return null;

        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
                Intent intent = new Intent(MainActivity.this, UnityPlayerActivity.class);
                intent.putExtra("RowColumn", "20,12,5");
                intent.putExtra("Images", "/sdcard/testpic");
                intent.putExtra("CenterImages", "/sdcard/center");
                startActivity(intent);
        }
    }
上一篇下一篇

猜你喜欢

热点阅读