0

我正在使用以下代码将 a 保存BufferedImage到磁盘:

savePath = new File(path);
savePath.mkdirs();
savePath.createNewFile();
javax.imageio.ImageIO.write(img, "png", savePath);

这段特定的代码在服务器之外执行,并且对于每个客户端请求运行大约 10 次。大多数情况下(10 个请求中有 9 个请求),它工作正常,并且图像按预期保存到磁盘。

但是,有时我得到一个java.io.FileNotFoundException (Access is denied)...ImageIO.write()行了,并且图像没有保存。(文件夹仍然被创建)

什么会导致异常?

4

1 回答 1

4

很难相信这真的有效。您正在savePath通过调用创建目录,mkdirs()然后尝试将其创建为文件。你需要打电话savePath.getParentFile().mkdirs()

createNewFile()调用是多余的。

于 2012-11-09T05:51:06.870 回答