尝试在安装在 unix 系统上的窗口文件夹上写入文件时,我遇到了帖子的标题错误。我开发了一个 Web 服务,它在 Linux 操作系统上的 Tomcat 6 内运行,需要在 Windows 网络文件夹上写入。系统管理员已将其安装在 Linux 服务器上,并且在其上创建和修改文件没有问题。当我尝试执行发布的代码时,出现以下异常:
Permission denied java.io.IOException: Permission denied at java.io.UnixFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:850)
奇怪的是,它似乎与网络文件夹上的 File.createNewFile 方法有关,实际上该服务可以毫无问题地写入本地文件系统,无论是在调试(我用来开发服务的电脑)和 tomcat 上文件夹系统管理员在 linux 服务器上为我提供了。该文件已创建但为空,并且未打印 create 方法后面的日志条目。此外,如果我使用普通的输出流来创建和写入文件,我没有问题。
我在网上找不到有关异常的任何解释。由于我对 java 不是很有经验,我想了解为什么会出现此错误。我是否以错误的方式使用它?这是图书馆的错误吗?我想传递一些参数吗?如前所述,我已经使用普通的输出流解决了这个问题,这是一个提高我对 java 理解的问题。
FileOutputStream fos = null;
try{
log.info(String.format("file length: %s",streamAttach.length));
log.info(String.format("check File : %s",filename));
File f = new File(filename);
if(f.exists())
...
boolean done= f.createNewFile();//here comes the exception
//nothing of the following happens
if(!done)
throw new NWSException("error creating file");
log.info(String.format("file %s creato", nomeFile));
提前感谢您的任何回答