Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.io.IOException: Read-only file system

Tags:

java

android

File mediaDir = new File("media");
if (!mediaDir.exists()){
    mediaDir.createNewFile();
    mediaDir.mkdir();

}

File f = new File("/data/data/com.test.image/files/media/Voucher.jpg");
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
fos.write(b);
fos.close();

Try to write a file in phone internal memory but it throw an error: java.io.IOException: Read-only file system

like image 241
chinna_82 Avatar asked Feb 21 '12 05:02

chinna_82


Video Answer


2 Answers

Guess /data/data is not external storage. You need to have root permission in order to write to the /data directory. Refer Data directory has no read/write permission in Android

like image 186
user936414 Avatar answered Sep 22 '22 23:09

user936414


You are creating file in Android system's root directory for which no application is allowed to.

To create directory specific to your application, use getDir(String dirName, int mode) instead of new File("media"). By calling only, you can create media directory and use it.

No need to do so many stuffs what you are doing in your above code. Also no need to give any permission in manifest too.

like image 25
AndroDev Avatar answered Sep 22 '22 23:09

AndroDev