2017-06-20 14 views
0

ユーザーが選択した画像を自分のリソースパッケージに保存しようとしています。私は "title.jpg"のような単純なパスや "C://res/title.jpg"のような完全なローカルパスを与えるだけで保存できます。どのようにパッケージに保存できますか?非ローカルパスを使用してディレクトリに画像を保存する

public class ImportFile { 

    FileChooser fileChooser = new FileChooser(); 
    String fileExtension; 
    BufferedImage bufferedImage; 
    File file; 

    public void chooseFile(){ 
     extensionFilters(); 
     file = fileChooser.showOpenDialog(null); 
     try{ 
      bufferedImage = ImageIO.read(file); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    public void saveFile(BufferedImage importedFile, File file,String title) { 
     try{ 
      File saved = new File("\res\"+title+findFileExtension(file)); 
      ImageIO.write(importedFile,"jpg",saved); 
     }catch(IOException e){ 
      e.printStackTrace(); 
     } 
    } 

    private String findFileExtension(File file) { 
     String fileName = file.getName(); 
     fileExtension = fileName.substring(fileName.lastIndexOf("."), fileName.length()); 
     return fileExtension; 
    } 
+0

クラスパスにパッケージに保存しますか? –

答えて

0

File saved = new File(System.getProperty("user.dir") + "/src/<package name>/<filename>.jpg");

System.getProperty("user.dir")をやって試してみてください:現在のプロジェクトのディレクトリに

<package name>を与える:交換することを確認してください "と。"パッケージ名に "/"を付けてください

+0

それは働いた;本当にありがとう! – goobs14

0

画像をパッケージにアップロードしますか? パスを指定しないで、単にfile.getOriginalFilename()を使用するような名前を付けてください。

try?それがあなたに役立つことを願っています。 コード: if(!file.isEmpty()){ try { BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(file.getOriginalFilename()))); out.write(file.getBytes()); out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); return"failure,"+e.getMessage(); } catch (IOException e) { e.printStackTrace(); return"failure,"+e.getMessage(); } return"success"; }else{ return"the file is empty"; }

+0

こんにちは..スタックオーバーフローへようこそ!質問の具体的な回答がない場合は、下記のコメントセクションを使用してください。そうしないと、他のメンバーが投票します。がんばろう :) –

関連する問題