我寫在內部存儲器中的文件:我的應用程序可以創建一個文件,但不能讀取它
byte[] data = ... // (A buffer containing wav data)
String filename = context.getFilesDir().getAbsolutePath() + "/newout.wav";
File file = new File(filename);
FileOutputStream fos = new FileOutputStream(file);
fos.write(data);
fos.close();
然後我試着玩:
MediaPlayer player = new MediaPlayer();
player.setDataSource(filename);
player.prepare();
player.setLooping(false);
player.start();
但prepare()
失敗:
java.io.IOException: Prepare failed.: status=0x1
我檢查了文件,看到它的權限是-rw-------
。我將它更改爲-rw-r--r--
,之後它正在成功播放。
那麼,我的應用程序怎麼可以寫一個文件,但不能讀取它?我怎樣才能讓FileOutputStream
設置權限?
您是否在AndroidManifest.xml中添加了以下權限: ? –
我認爲你正在寫內存的文件,請檢查路徑 –
這是在內部存儲器中:'/ data/data/xx.xxx.xxx/files/newout.wav' – Mousa