@GET
@Path("/welcome1")
@Produces(MediaType.APPLICATION_JSON)
public Response image() {
try {
BufferedImage originalImage = ImageIO.read(new File("F:\\images\\1.jpg"));
ImageIO.write(originalImage, "jpg", new File("resources\img\copyright.jpg"));
} catch (IOException e) {
System.out.println(e.getMessage());
}
return null;
}
我想将图像从我的磁盘加载到项目文件夹。但我得到了 错误(系统找不到特定路径)。
错误是:
java.io.FileNotFoundException:resources \ img \ copyright.jpg(The 系统找不到指定的路径)
答案 0 :(得分:1)
File
表示文件系统中的文件,而不是类路径中的文件。类路径包含类和资源所在的位置。通常将类和资源复制到应用程序运行时的某个位置,例如复制到jar文件或目录中。
您的代码在考虑您的类路径时做出了不同寻常的假设,它依赖于当前的工作目录。我建议将文件写入文件系统,因为您没有提到应用程序需要修改自己。
答案 1 :(得分:0)
为了将来参考,如果您包含目录结构的示例,将会很有帮助。
通常,只有父目录存在时,Java才会创建不存在的文件。您应该检查/创建目录树,然后检查文件。
您还需要构建自己的路径。
//User directory - can also use System.getProperty("user.dir")
String path = new File("").getAbsolutePath();
String filename = "abc.txt";
File f = new File(path + File.separator + "resources" + File.separator + "org" + File.separator + "project" + File.separator + "playground" + File.separator + filename);
//You should also check to make sure that the directory exists. I didn't do that here.
if (f.createNewFile()) {
System.out.println("File is created!");
} else {
System.out.println("File already exists.");
}
请注意我没有使用\
或/
,因为这些完全依赖于系统。 (Windows / Unix),顺便说一句,如果你使用的是Windows,那么你在java中使用了错误的括号,所以使用内置功能会更容易。