Файл не исключение файла в FileOutputStream - скачать файл из мобильного приложения - android - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь предоставить пользователю возможность загрузить файл .xls из приложения android. Файл .xls отправляется с сервера. Показывающий файл не найден исключение в FileOutputStream. Мой фрагмент кода:

        protected Boolean doInBackground(String... params) {
// params is an array where params[0]= url to download the .xls file and params[1] = filename
            File dir = null;
            try {

                if(isSDCardPresent()) {
                    dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + "Report");
                    if (!dir.exists()) {
                        if(dir.mkdirs()){
                            URL url = new URL(params[0]);
                            File reportFile = new File(dir, params[1]);

                            URLConnection ucon = url.openConnection();
                            InputStream is = ucon.getInputStream();
                            BufferedInputStream bis = new BufferedInputStream(is);
                            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
                            //We create an array of bytes
                            byte[] data = new byte[50];
                            int current = 0;

                            while ((current = bis.read(data, 0, data.length)) != -1) {
                                buffer.write(data, 0, current);
                            }

                            FileOutputStream fos = new FileOutputStream(reportFile);
                            fos.write(buffer.toByteArray());
                            fos.close();
                        }
                        else {
                            Toast.makeText(getApplicationContext(),"Unable to download",Toast.LENGTH_SHORT).show();
                        }
                    }
                }else{
                    Toast.makeText(getApplicationContext(),"no sd card",Toast.LENGTH_SHORT).show();
                }

            } catch (IOException e) {
                e.printStackTrace();
                return false;
            }
            return true;
        }
...