美文网首页
下载文件到指定sd卡目录下(AsyncTask)

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

作者: 小慧sir | 来源:发表于2020-12-23 09:35 被阅读0次
             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);
            }
        }
    

    相关文章

      网友评论

          本文标题:下载文件到指定sd卡目录下(AsyncTask)

          本文链接:https://www.haomeiwen.com/subject/ikkynktx.html