Выдает ошибку java.io.IOexception: open failed: EACCES (Permission denied)

540
25 февраля 2017, 04:22
try {
            URL url = new URL(sUrl[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();
            String Foldertosave = Environment.getDownloadCacheDirectory().getPath();
            File file= new File(Foldertosave);
            file.mkdir();
            File file2 = new File(Foldertosave, "1.pdf");
            file2.createNewFile();

            if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
                return "Server returned HTTP " + connection.getResponseCode()
                        + " " + connection.getResponseMessage();
            }

            int fileLength = connection.getContentLength();

            input = connection.getInputStream();

           output = new FileOutputStream(file2);
Answer 1

Нельзя писать прямо в Environment.getDownloadCacheDirectory()
Нужно создать там папку для себя.

И разрешение, возможно тоже потребуется.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Answer 2
File folder = new File(Environment.getExternalStorageDirectory() +
                    File.separator + "test1");
            if (!folder.exists()) {
                folder.mkdir();
            }
            File f1 = new File(folder,"2.jpg");

Все получилось. Но почему-то не может сохранить в папку cache. Получается только на карту памяти. Как сохранить в папку data?

UPDATE

Решил эту проблему изменив эту строчку. output = openFileOutput("filename",MODE_PRIVATE);

READ ALSO
Проблема c кодировкой после сборки приложения

Проблема c кодировкой после сборки приложения

Здравствуйте,сделал приложение,в котором несколько окошек JFrame с русским текстом,после того как упаковал в jar файл и при открытии(без IDE) в Windows7...

333
Перенос текста Label JavaFX

Перенос текста Label JavaFX

У меня есть Label(библиотека JavaFX) Как реализовать перенос текста на новую строчку?

454
Android OpenGl ES. Как нарисовать сферу и цилиндр?

Android OpenGl ES. Как нарисовать сферу и цилиндр?

После поисков в гугле нашел следующие функции:

807
Static метод в kotline

Static метод в kotline

Есть метод в java:

435