gpt4 book ai didi

java - 将文件写入默认临时目录时权限被拒绝

转载 作者:IT王子 更新时间:2023-10-29 01:13:59 28 4
gpt4 key购买 nike

我的程序执行一些相当密集的操作,所以我使用临时文件来加快速度。我使用以下 Java 代码:

File scratchFile = new File(System.getProperty("java.io.tmpdir") + "WCCTempFile.tmp");
if (!scratchFile.exists())
scratchFile.createNewFile();

此代码在 Mac OS X 和 Windows 上运行良好。它在 Java 临时目录中创建一个暂存文件,该目录由操作系统决定。

但是,当我在 Linux(特别是 Linux Mint)上尝试这个程序时,我在“scratchFile.createNewFile()”行出现以下错误

java.io.IOException: Permission Denied

我真的对这个错误感到困惑,因为我认为 System.getProperty("java.io.tempdir") 方法收集的临时目录是用户可以访问的目录写入(它在其他操作系统上)。在 Linux 上不是这样吗?有什么方法可以授予对临时目录的访问权限吗?我应该使用其他目录吗?

最佳答案

在 Linux 上 java.io.tmpdir 通常设置为 /tmp(注意缺少尾随/)。使用 the two-parameter File constructor 比使用额外的嵌入式斜杠更简洁

File scratchFile = new File(System.getProperty("java.io.tmpdir"),"WCCTempFile.tmp");

这样你就不必担心尾部是否有斜线。

关于java - 将文件写入默认临时目录时权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14845045/

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