我正在尝试将用户选择的图像保存到我的资源包中。我只能通过提供像“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>
:确保替换&#34;。&#34;在包名称中使用&#34; /&#34;
答案 1 :(得分:0)
您想将图片上传到包中吗? 只是不要给它一个路径,只是给出一个名称,如使用file.getOriginalFilename()。
试试看?我希望它会对你有所帮助。 码:
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";
}