Java加载属性文件java.lang.NullPointerException错误

时间:2016-10-19 11:26:47

标签: java nullpointerexception

我有一个属性文件,名称为D = { Year, Location, column1, column2... } 2008, usa, ..., ... 2008, usa, ..., ... 2009, asia, ..., ... 2009, asia, ..., ... 2010, japna, ..., ... 。我想从这个文件中获取详细信息。 我的媒体文件位置为XYZ.properties

为此我使用下面的代码

D:\properties_file\XYZ.properties

但是当我在import java.io.InputStream; import java.util.Properties; public class LoadProp { private static Properties prop = new Properties(); public static Properties getProperties() throws Exception { if (prop.isEmpty()) { InputStream fis = LoadProp.class.getResourceAsStream("D:\\properties_file\\XYZ.properties"); prop.load(fis); } return prop; } } public class demo extends HttpServlet { private static final long serialVersionUID = 1L; private static Properties propFile; public void doPost(HttpServletRequest request, HttpServletResponse response) { try { propFile = LoadProp.getProperties(); System.out.println(propFile.getProperty(Constants.URL)); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e1) { e1.printStackTrace(); } } } 行上运行时,它会给我以下错误

prop.load(fis)

2 个答案:

答案 0 :(得分:2)

更改此行:

InputStream fis = LoadProp.class.getResourceAsStream("D:\\properties_file\\XYZ.properties");

InputStream fis = new FileInputStream("D:\\properties_file\\XYZ.properties");

getResourceAsStream旨在从类路径(应用程序内的资源)中读取资源,以便读取应用程序外部的文件,使用java File API。

答案 1 :(得分:0)

Class.getResourceAsStream无法打开文件系统位置。它试图在类路径中查找资源。您可能希望使用FileInputStream来阅读属性。