Я пытаюсь предоставить пользователю возможность загрузить файл .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;
}