我尝试用SQL语句执行文件。唯一的问题是将文件保存到一个变量文件中,它将产生一个NullPointerException。
代码如下:
public DataOpladen(String dataFile) throws IOException {
File file = null;
try {
file = new File(Thread.currentThread().getContextClassLoader().getResource(dataFile).toURI());
} catch (URISyntaxException e) {
e.printStackTrace();
}
this.dataSchrijvenNaarDatabase(file);
}
在这一行我得到了异常:
file = new File(Thread.currentThread().getContextClassLoader().getResource(dataFile).toURI());
奇怪的是,它有时有效,有时不有效,所以没有行。
IntelliJ主动警告我,这个特定的调用可能导致NullPointerException
,因为如果getResource
找不到指定的资源,它将返回null
。
如果你不能加载所需的资源,你将无法做任何事情,一个简单的解决办法是事先做一个null检查:
URL resource = Thread.currentThread().getContextClassLoader().getResource(dataFile);
if(resource != null) {
file = new File(resource.toURI());
// rest of program dealing with file here
}