title: java.io.FileNotFoundException: /storage/emulated/0/New file.txt: open failed: EACCES (Permission denied)
body: <p>I've been trying to encrypt files and write those files back on to the same place. But I got the error message saying <code>"java.io.FileNotFoundException: /storage/emulated/0/New file.txt: open failed: EACCES (Permission denied)".</code></p>
  
  <p>My <code>Manifest</code> file is this </p>
  
  <pre><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.tdk.mytestapplication2"&gt;
  
  &lt;uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /&gt;
  &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/&gt;
  
  
  &lt;application
      android:allowBackup="true"
  </code></pre>
  
  <p>I think I have provided correct permission there. And the code I am using to encrypt files is this. </p>
  
  <pre><code>public static void encrypt(SecretKey secretKey, String filePath){
      try {
          // Here you read the cleartext.
          FileInputStream fis = new FileInputStream(filePath);
          // This stream write the encrypted text. This stream will be wrapped by another stream.
          FileOutputStream fos = new FileOutputStream(filePath);
  
          // Create cipher
          Cipher cipher = Cipher.getInstance("AES");
          cipher.init(Cipher.ENCRYPT_MODE, secretKey);
          // Wrap the output stream
          CipherOutputStream cos = new CipherOutputStream(fos, cipher);
  
          // Write bytes
          int b;
          byte[] d = new byte[8];
          while ((b = fis.read(d)) != -1) {
              cos.write(d, 0, b);
          }
  
          // Flush and close streams.
          cos.flush();
          cos.close();
          fis.close();
  
      }catch(IOException e){
          e.printStackTrace();
      }catch (NoSuchAlgorithmException e){
          e.printStackTrace();
      }catch(NoSuchPaddingException e){
          e.printStackTrace();
      }catch(InvalidKeyException e){
          e.printStackTrace();
      }
  }
  </code></pre>
  
  <p>And I used this method inside a button </p>
  
  <pre><code>Button btnEncrypt = (Button) findViewById(R.id.btnEnc);
      btnEncrypt.setOnClickListener(new OnClickListener() {
          @Override
          public void onClick(View v) {
              aesKey = EncAndDec.generateKey();
              String filePath = editText.getText().toString();
              //Generating the file hash
              String md5Hash = MD5Hash.getMD5(filePath);
  
              System.out.println(aesKey.toString());
              System.out.println(filePath);
              System.out.println(md5Hash);
  
              //Encrypting the file
              for(int i=1; i&lt;100; i++) {
                  EncAndDec.encrypt(aesKey, filePath);
              }
          }
      });
  </code></pre>
  
  <p>Still I couldn't configure this error. Please someone help! </p>