我正在尝试创建一个新文件夹来保存图像。该程序生成一个文件而不是文件夹,并且该文件不可访问(这是有道理的,因为它没有后缀)。
代码:
public class Main
{
public BufferedImage img = null;
public String outPath;
public static void main(String[] args)
{
System.out.println("enter out put path like c:\\test: ");
outPath = scan.nextLine();
makeDir();
writeFile();
}
public void makeDir()
{
// Create one directory
boolean success = (new File(outPath)).mkdir();
if (success)
{
System.out.println("Directory: " + outPath + " created");
}
}
public void writeFile()
{
try
{
File f = new File(outPath);
ImageIO.write(img, "jpg", f);
System.out.println("finished writing: " + outPath);
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
}
}
答案 0 :(得分:1)
您正在将文件写入与您创建的目录相同的文件名。可以为图像添加文件名,例如
File f = new File(outPath);
File imageFile = new File(f, "image.jpg")
ImageIO.write(img, "jpg", imageFile);
答案 1 :(得分:0)
我可以向您保证,mkdir()
和mkdirs()
工作得非常好,并且该漏洞很可能出现在该计划的流程中。
如果已有目录或文件具有相同路径,则不会创建目录。
您可以使用exists()
进行检查,true
如果有该路径的文件或目录,则会返回isFile()
。如果您想知道路径是文件还是目录,可以使用isDirectory()
和{{1}}来确定类型。