Весенняя партия абсолютного пути - PullRequest
0 голосов
/ 07 марта 2019

У меня есть процесс Spring Batch. Я хочу использовать относительный путь для записи исключения Spring Batch, используя файл CSV, но он отказывается, ему не хватает абсолютного пути, почему?

файл: fo

Мой код:

public class MyJob {

    File fo=new File("C:\\Users\\m.youneb\\Documents\\icdc\\cecWorkplace\\saveLines\\src\\main\\resources\\csv\\skip.csv");

    @Bean
    public Step step() throws IOException {
        return steps.get("step")
                .<Person, Person>chunk(5)
                .reader(itemReader())
                .processor(itemProcessor())
                .writer(itemWriter())
                .faultTolerant()
                .skip(IllegalArgumentException.class)
                .skip(FlatFileParseException.class)
                .skipLimit(100)
                .listener(new MySkipListener(fo))
                .skip(Exception.class)
                .build();
}

public static class MySkipListener implements SkipListener<Person, Person> {

        //private FileWriter fileWriter;
        private BufferedWriter bw = null;

        public MySkipListener(File file) throws IOException {
            //this.fileWriter = new FileWriter(file);
            bw= new BufferedWriter(new FileWriter(file, true));
            System.out.println("MySkipListener =========> :"+file);
        }

        @Override
        public void onSkipInRead(Throwable throwable) {
            if (throwable instanceof FlatFileParseException) {
                FlatFileParseException flatFileParseException = (FlatFileParseException) throwable;
                System.out.println("onSkipInRead =========> :");
                try {
                        bw.write(flatFileParseException.getInput()+"Vérifiez les colonnes!!");
                        bw.newLine();
                        bw.flush();
                  // fileWriter.close();
                } catch (IOException e) {
                    System.err.println("Unable to write skipped line to error file");
                }
            }
        }
 }

Мне нужно работать с относительным путем, Спасибо.

1 Ответ

0 голосов
/ 07 марта 2019

Для работы с относительным путем к вашему файлу вы можете использовать:

File fo = new File("src/main/resources/csv/skip.csv"); // should work on windows

Предполагается, что вы запускаете JVM в каталоге , содержащем src/main/resources, который обычнокорневой каталог типичного проекта maven.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...