我正在尝试在Java项目根目录中动态创建一些文件。但是当我运行代码时出现以下错误。
java.io.FileNotFoundException: D:\POS_ALL\T_POS_NEWEST\TouchPosApplication\WebContent\zharaimages\279 (Access is denied)
是否可以在Java中将文件写入根项目文件夹?这是使用的代码。
private void createImage(PosItemImageDTO imageDTO,String path) throws IOException {
byte[] bytes = imageDTO.getPosItemImage();
path = path + "\\";
if(bytes!=null && bytes.length>0){
OutputStream out = null;
// BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes));
File l = new File(path);
out = new BufferedOutputStream(new FileOutputStream(path));
out.write(bytes);
if (out != null) {
out.close();
}
}
}
答案 0 :(得分:1)
因为你好像在试图打开并阅读目录。您所说的文件没有指定任何扩展名,因此java将其作为目录。在打开之前使用isFile()
方法检查文件。您可以使用listFiles()
方法获取目录的文件。
答案 1 :(得分:0)
请确保path = path + "\\";
是正确的路径。如果有目录,程序将显示Access is denied
。您应该在打开文件之前添加一些检查,就像if (l.isDirectory())
。