我想從應用中讀取csv文件。但我得到java.io.FileNotFoundException:
。以下是我的csv閱讀代碼。讀取CSV文件return java.io.FileNotFoundException:
String constantURL = AppConst.INTERNAL_ASSETS_CONFIG_ROOT_URL + "whitelist/RMWhitelist.csv";
logger.info("constantURL > " + constantURL);
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try{
br = new BufferedReader(new InputStreamReader(new FileInputStream(constantURL)));
while ((line = br.readLine()) != null) {
String[] country = line.split(cvsSplitBy);
System.out.println("Country [code= " + country[0] + " , name=" + country[1] + "]");
}
}catch(Exception e){
e.printStackTrace();
}
下面是我得到的錯誤。
INFO: constantURL > http://localhost:7001/shops/config/whitelist/milRMWhitelist.csv
java.io.FileNotFoundException: http:\localhost:7001\app\config\whitelist\RMWhitelist.csv (The filename, directory name, or volume label syntax is incorrect)
爲什麼我得到這個錯誤? CSV文件在路徑中可用。
UPDATE
下面是現有的代碼,我在另一個項目中使用的一個。這工作正常。但是相同的代碼在這個新項目中不起作用。有F.N.F錯誤。這種區分文件輸入流的方式是URL還是文件路徑?
final String file = this.httpRequestPoster.sendGetRequest(AppUrlConst.CONFIG_URL + "other.csv", "");
Reader reader = new StringReader(file);
final CSVReaderBuilder<UpgradeVO> customerVOCSVReaderBuilder = new CSVReaderBuilder<UpgradeVO>(reader);
customerVOCSVReaderBuilder.strategy(CSVStrategy.UK_DEFAULT);
CSVReader<UpgradeVO> customerVOCSVReader = customerVOCSVReaderBuilder.entryParser(new UpgradeParser()).build();
Iterator<UpgradeVO> customerVOIterator = customerVOCSVReader.iterator();
while (customerVOIterator.hasNext()) {
UpgradeVO upgradeVO = customerVOIterator.next();
logger.info(UpgradeVO.getServiceId());
}
是你的文件在你看到的打印在你的錯誤信息或類路徑中的路徑上嗎? – LuckAss
您需要確定您的信息流的來源。如果源字符串是文件位置而不是http url,則更新的代碼將不起作用。 – daotan
@daotan但是,這是我現有的代碼工作完美的URL和文件路徑都沒有調整任何東西。 –