2016-09-02 4 views
-1

enter image description hereは、どのように私は(システムが特定見つけることができない私は、画像は私が エラーを得たfolder.but投影する私のディスクを形成読み込みたい

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

Spring MVCのプロジェクト内のリソースフォルダ内の画像を書き込むことができますパス)。

エラーがある:

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)、ウィンドウを使用している場合は、Javaで間違った括弧を使用しているため、組み込みの機能を使用するほうが簡単です。

関連する問題

 関連する問題