2015-04-28 273 views
0

我正在嘗試從測試/資源中讀取一個用於測試的excel文件,但我一直在收到FileNotFoundException。我已經嘗試了這兩種方法,兩者似乎都給出了相同的FileNotFoundException如何從Java中的src/test/resources讀取excel文件

File decisionConfig=new File("src/test/resources/mapping.xls"); 
File decisionConfig=new File("classpath:test/resources/mapping.xls"); 
+0

它可能只是錯誤的路徑嗎? – Bolza

+0

不,當我給絕對路徑,它的工作正常。 –

回答

1

你可以試試這個:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
InputStream inputStream = classLoader.getResourceAsStream("test/resources/mapping.xls"); 

這應該讓基於ClassLoader只要將文件作爲test目錄在src文件夾中。這將得到該文件的InputStream

********************************* UPDATE ************ ************************ 對於File對象:

ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
File file = new File(classLoader.getResource("test/resources/mapping.xls").toString()); 
+0

我想將它只設置爲一個FILE對象,因爲我需要傳遞一個文件對象作爲參數。 –

+0

@SatheshBm那裏我剛剛發佈了一個關於如何獲得'File'對象的更新... – brso05

+1

我在第二行得到了一個空指針! –

1

我不知道正是你想要用這個文件做什麼,但對於Microsoft Office文件我喜歡使用Apache POI https://poi.apache.org/

FileInputStream file = new FileInputStream(new File("test/resources/mapping.xls")); 

//Get the workbook instance for XLS file 
HSSFWorkbook workbook = new HSSFWorkbook(file); 

//Get first sheet from the workbook 
HSSFSheet sheet = workbook.getSheetAt(0); 
+0

我使用的規則引擎稱爲drools,它只接受文件輸入。這就是原因。 –