方法可以返回文件吗?

时间:2012-01-23 16:05:33

标签: java file types return

我的Java代码有问题。 我想传递一个文件(精度为xml文件)作为方法的输入参数。我粘贴我的代码:

public File searchPlaces(){

     URL url = getClass().getResource("arml.xml");
     File file = new File(url.getPath());

     return file;
}

当我尝试调用此方法时,我有一个NullPointerException。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

您未能检查“url”是否使用非空值初始化。

获得有效的非空URL后,您可以尝试从中创建File对象。您可能必须检查该文件是否也是非空的(或者可能允许此方法返回空项)。无论哪种方式,返回null项(File或其他)在Java中都是完全可以接受的。

取消引用null(在对象引用上调用一个不引用任何东西的方法)不是。这就是你在

得到错误的原因
url.getPath()

你只是错误地识别失败的地方。

答案 1 :(得分:1)

是的,你可以。如果新的File()调用生成异常,您可能会得到一个空指针。

调试并查看Url是否为null。

答案 2 :(得分:1)

您可能想要做的不是返回File对象,而是返回BufferedReader或FileReader,或者FileInputStream。然后,使用try / catch封装方法中的所有错误处理,或者使用throws声明将错误冒泡。