我正在使用以下代码将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()
,并且未保存图片。 (该文件夹仍在创建中)
什么可能导致异常?
答案 0 :(得分:4)
很难相信这实际上有效。您正在创建savePath
作为目录,方法是调用mkdirs()
,然后尝试将其创建为文件。您需要拨打savePath.getParentFile().mkdirs()
。
createNewFile()
来电是多余的。