2016-09-02 35 views
-1

enter image description here我怎麼能寫在資源文件夾中的圖像Spring MVC中的項目

@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;  
    } 

我想加載圖像形成我的硬盤項目folder.but我得到了 錯誤(系統無法找到具體的路徑)。

錯誤是:

java.io.FileNotFoundException:資源\ IMG \ copyright.jpg(該 系統不能找到指定的路徑)

+0

運行應用程序中沒有src文件夾 – Jens

回答

1

File表示文件在文件系統中,不是類路徑中的文件。類路徑包含您的類和資源所在的位置。通常將類和資源複製到應用程序運行時的某個位置,例如複製到jar文件或目錄中。

考慮到你的類路徑,你的代碼會做出不尋常的假設,它依賴於當前的工作目錄。我建議將文件寫入文件系統,因爲您沒有提到應用程序自身需要修改。

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中使用了錯誤的括號,因此使用內置功能更容易。

相關問題