2012-11-18 76 views
-3

下面的几行是我的servlet的一部分,给我一个错误“显示java.lang.NullPointerException”无法读取的InputStream

ServletContext context = getServletContext(); 
     InputStream kapil= context.getResourceAsStream("Desktop/images.jpg"); 
//the above line generates the exception 
    BufferedImage bufferedImage = ImageIO.read(kapil); 
+0

我不知道,你可以使用“桌面/”作为文件路径...在Windows上,实际上是像C的地方:/用户/ so_and_so /.../桌面(搜吧) – Raekye

+0

@Raeki不,但我在其余的代码中使用过这样的路径,无论我需要打开文件还是删除文件等等。而且我也没有在问题中写出整个路径。 –

+0

你没有发布有问题的代码,输入在哪里? – Mordechai

回答

2

您编辑您的文章。你确定这是一个NullPointerException而不是IllegalArgumentException

的JavaDoc:

ServletContext.getResourceAsStream()将返回null,如果它不能找到你要找的文件。

ImageIO.read()当参数为空时抛出IllegalArgumentExeception。提到的input可能是ImageIO输入参数。

我猜测确实没有找到输入文件。

这将匹配您原来的帖子问题。请尝试以下操作:

ServletContext context = getServletContext(); 
InputStream kapil= context.getResourceAsStream("Desktop/images.jpg"); 
if (kapil != null){ 
    //the above line generates the exception 
    BufferedImage bufferedImage = ImageIO.read(kapil); 
} else { 
    // Use a logging framework if you have it. 
    System.out.println("The input stream is null!"); 
} 
+0

对不起,我花了这么长时间来标记你的答案。我从来不知道你已经回答。 –