我正在尝试将应用程序的数据存储到/Library/Application Support/myAppFolder。
我正在尝试使用此代码(通过调试)
String content = "This is the content to write into file";
File file = new File("/Library/Application Support/filename.txt");
// if file doesnt exists, then create it
if (!file.exists()) {
file.mkdir();
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();
System.out.println("Done");
但是 java.io.IOException: 抛出权限被拒绝。
最佳答案
让我们从...开始
if (!file.exists()) {
file.mkdir();
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
您创建一个名为 /Library/Application Support/filename.txt
的目录,然后尝试创建一个名为 /Library/Application Support/filename.txt
的文件,并且然后尝试读取所述文件...这是一个目录...
暂时假设您实际上拥有 /Library/Application Support
的读/写权限,filename.txt
是一个目录,因此任何尝试处理它的行为就像文件会失败一样。
但是,
File file = new File("/Library/Application Support/filename.txt");
应该是...
File file = new File(System.getProperty("user.home") + "/Library/Application Support/filename.txt");
这样,您将写入当前用户的主目录,您更有可能拥有该目录的读/写权限。
此外,您的文件
应该指向您的应用程序目录(而不是文件)
File file = new File(System.getProperty("user.home") + "/Library/Application Support/Your Application Directory");
然后你可以使用更像......的东西
if (file.exists() || file.mkdir()) {
file = new File(file, "filename.txt");
file.createNewFile();
}
现在您可以使用 file
读取/写入内容(因为它现在指向 System.getProperty("user.home"内的
)filename.txt
") + "/Library/Application Support/您的应用程序目录"
关于java - 写入 OSX's/Library/Application Support 文件夹会抛出 IOException : Permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620482/