我有一个属性文件,名称为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)
答案 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
来阅读属性。