gpt4 book ai didi

java - 我的应用程序可以创建文件,但无法读取它

转载 作者:可可西里 更新时间:2023-10-31 22:04:13 26 4
gpt4 key购买 nike

我在内存中写了一个文件:

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 正确设置权限?

最佳答案

要以编程方式将文件权限更改为 -rw-r--r--,您需要执行如下操作:

Process process = null;
DataOutputStream dataOutputStream = null;

try {
process = Runtime.getRuntime().exec("su");
dataOutputStream = new DataOutputStream(process.getOutputStream());
dataOutputStream.writeBytes("chmod 644 FilePath\n");
dataOutputStream.writeBytes("exit\n");
dataOutputStream.flush();
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
if (dataOutputStream != null) {
dataOutputStream.close();
}
process.destroy();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

关于java - 我的应用程序可以创建文件,但无法读取它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29968301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com