Я в настоящее время разрабатываю программу, которая будет читать из текстового файла, который будет ожидать определенных значений, например:
ПРИМЕР ТЕКСТОВОГО ФАЙЛА:
14/11/2099 (Дата), ESET (ClientID), YTU (код службы), 100 (стоимость)
, однако мне не удалось обработать ошибки при чтении из текстовых файлов, которые не соответствуют этим значениям, например:
НЕПРАВИЛЬНЫЙ ПРИМЕР ФАЙЛА ТЕКСТА:
14/11/2099 (Дата), ESET222 (неверный идентификатор клиента), YYU (неверный код услуги), 100 (Стоимость).
код ниже:
public boolean parseFile(String filename) {
try (BufferedReader br = Files.newBufferedReader(Paths.get(filename))) {
// read line by line
String line;
while ((line = br.readLine()) != null) {
StringBuilder sb = new StringBuilder();
sb.append(line).append("\n");
// String stringToSplit = "str1-str2-str3";
String[] tempArray;
/* delimiter */
String delimiter = ",";
/* given string will be split by the argument delimiter provided. */
tempArray = sb.toString().split(delimiter);
@SuppressWarnings("deprecation")
// IF statement to say if the field in the text file is not in the lists i.e customer, service arrays then print out error.
CustomDetails cd = new CustomDetails(new Date(tempArray[0]), tempArray[1], tempArray[2], tempArray[3],
Double.parseDouble(tempArray[4]), tempArray[5], tempArray[6]);
customDetailsList.add(cd);
}
} catch (IOException e) {
System.err.format("IOException: %s%n", e);
return false;
} catch (NumberFormatException e1) {
System.err.format("NumberFormatException: %s%n", e1);
return false;
}
return true;
}