У меня есть небольшая проблема, которая всегда случается, когда я впервые использую свой код, и я не понимаю, почему. Я использую Watcher-сервис для управления папкой. Как только в эту папку входит новый файл (содержащий данные в формате JSON), я анализирую его для обработки. С первого разбора у меня появляется ошибка Неожиданный токен END OF FILE в позиции 0. Иногда тоже бывает после, но случайно чувствую.
Я уже выгляжу по-другому, не нашел ...
Это пример файла json:
{"identifier":"004","note":null,"addresses":null,"msgType":"Alert","code":null,"references":null,"source":null,"sent":"2018-01-17T22:39:00-07:00","sender":"test","scope":"Public","restriction":null,"incidents":null,"status":"Actual","info":{"severity":"Severe","area":null,"audience":null,"expires":null,"resource":null,"certainty":"Likely","description":null,"language":null,"onset":null,"eventCode":null,"effective":null,"responseType":null,"senderName":"Los Angeles Police Dept - LAPD","urgency":"Immediate","web":null,"instruction":null,"contact":null,"parameter":{"valueName":"Beeldvorming","value":"<b>Time: 2019-09-07T15:44:54-00:00<\/b> Sender: Fire DepartmentMessage: Hello007"},"category":"Rescue","event":"Child Abduction","headline":"Amber Alert in Los Angeles County"}}
Это мой код Java, который анализирует этот Json:
while ((key = watchService.take()) != null) {
for (WatchEvent<?> event : key.pollEvents()) {
System.out.println("Event kind:" + event.kind() + ". File affected: " + event.context() + ".");
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
String fileName = event.context().toString();
try {
String absolutePath = lcmsFolderPath + fileName;
FileReader fileReader = new FileReader(absolutePath);
// If unexpected token end of file at position 0
// == parse used twice.
JSONObject jsonObject = (JSONObject) parser
.parse(fileReader);
JSONObject infoJson = (JSONObject) jsonObject.get("info");
JSONObject parameterJson = (JSONObject) infoJson.get("parameter");
String htmlValue = (String) parameterJson.get("value");
String valueName = (String) parameterJson.get("valueName");
fileReader.close();
if (htmlValue != null) {
createLCMSDocument(valueName, htmlValue);
}
} catch (IOException | ParseException e) {
e.printStackTrace();
}
}
}
key.reset();
}
Спасибо,