因此,在尝试设置默认图像文件路径(如果用户不选择图像)时,我需要清楚地知道我忽略了什么。我在浏览按钮中使用了JFileChooser
以获取图像路径(相对路径,而不是绝对路径),以便将图像路径存储在MySQL
数据库中。
问题在于我的imageFileUploader
课程。我试图将通用图像设置为默认值,如果用户不想上传图像。当我测试我的imageFileUploader类时,我得到一个空指针异常。我基本上有一个文本框说"没有上传文件"如果这仍然存在,那么它会上传默认图像。有人可以关注我的代码并向我提供一些我可以忽略的观点吗?我非常感激。
String imagePath = "";
byte[] rawBytes = null;
FileInputStream fileInputStream = null;
if(imagePath.equals("No File Uploaded")) {//null pointer exeception here!!
ClassLoader classLoader = this.getClass().getClassLoader();
URL resources = classLoader.getResource("/abaApplicationImages/blankProfile.jpg");
imagePath = resources.getFile();
}else{
//File fileObject = new File(imagePath);
File fileObject = new File(imagePath);
try {
fileInputStream = new FileInputStream(fileObject);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("file not found");
}
int imageLength = Integer.parseInt(String.valueOf(fileObject.length()));
rawBytes = new byte[imageLength];
try {
fileInputStream.read(rawBytes, 0, imageLength);
} catch (IOException e) {
e.printStackTrace();
System.out.println("IO exception");
}
}
return imagePath;
}
错误讯息:
java.io.FileNotFoundException:at java.io.FileInputStream.open(Native 方法)在java.io.FileInputStream。(未知来源)at abaApplication.ImageUploader.ImageUploader(ImageUploader.java:30)at at abaApplication.ImageUploader.main(ImageUploader.java:59)文件没有 在线程" main"中发现了异常。 java.lang.NullPointerException at abaApplication.ImageUploader.ImageUploader(ImageUploader.java:40)at at abaApplication.ImageUploader.main(ImageUploader.java:59)
答案 0 :(得分:1)
您未验证ClassLoader.getResource()
是否为空。这可能是NPE的来源。
同样FileInputStream
从类路径加载资源,如果文件在图像文件上不在类路径上,那么你应该直接使用$("#myTextInput").val("hello sunshine!");
。