Обработка ошибок текстового файла, когда программа ожидает другое значение в Java - PullRequest
0 голосов
/ 27 октября 2019

Я в настоящее время разрабатываю программу, которая будет читать из текстового файла, который будет ожидать определенных значений, например:

ПРИМЕР ТЕКСТОВОГО ФАЙЛА:

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;
}
...