我正在尝试创建文件实例以从属性值解析html记录。问题出在我必须放在文件属性中的文件的URL中,这是我的示例:
读取文件的对应代码:
public void extraxtElementWithoutId() {
Map<String,List<List<Element>>> uniciteIds = new HashMap<String,List<List<Element>>>();
FileReader fileReader = null;
Document doc = null;
try {
fileReader = new FileReader(new ClassPathResource(FILEPROPERTYNAME).getFile());
Properties prop = new Properties();
prop.load(fileReader);
Enumeration<?> enumeration = prop.propertyNames();
List<List<Element>> fiinalReturn = null;
while (enumeration.hasMoreElements()) {
String path = (String) enumeration.nextElement();
System.out.println("Fichier en question : " + prop.getProperty(path));
URL url = getClass().getResource(prop.getProperty(path));
System.out.println(url.getPath());
File inputFile = new File(url.getPath());
doc = Jsoup.parse(inputFile, "UTF-8");
//fiinalReturn = getListofElements(doc);
//System.out.println(fiinalReturn);
fiinalReturn = uniciteIds.put("Duplicat Id", getUnicityIds(doc));
System.out.println(fiinalReturn);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try{
fileReader.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
预先感谢您, 最好的问候。
答案 0 :(得分:1)
您在行中犯了一个非常常见的错误-
URL url = getClass().getResource(prop.getProperty(path));
尝试将属性值设置为(通过删除 src )-/testHtmlFile/test.html
,依此类推。不要更改代码。
UrlEnterer1 = / testHtmlFile / test.html ,而不是在其前添加 src 。
prop.getProperty(path)
应该与文件的构建路径位置相同。检查构建目录以及这些文件的存储方式。这些不是存储在src下,而是直接存储在build目录下。
This answer解释了一些有关从类路径读取文件的路径值的信息。
此外,作为旁注(与问题无关),请尝试不做prop.getProperty(path)
,而是使用org.springframework.beans.factory.annotation.Value
批注直接在类中注入属性值。