Я пытаюсь прочитать файл csv из приложения. Но я получаю java.io.FileNotFoundException:
. Ниже приведен код чтения csv.Чтение файла CSV-файла 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, так и для файла, без каких-либо изменений. –