Как сохранить данные в каждой строке в текстовом файле с сохранением хранилища вызовов в Java - PullRequest
0 голосов
/ 09 сентября 2018
@Autowired
PilahRepository repoPilah;

@Autowired
PilahService pilahService;

@Autowired
private SecurityContext securityContext;

@RequestMapping(value = "/pilahFile", method = RequestMethod.POST)
public PilahFile pilahFIle() {
    String nameFile[] = pilahService.findFileName();
    Scanner sc;
    String destination;
    BigInteger userExecutor = securityContext.userId();
    PilahFile pilah = new PilahFile();
    try {
        File source = new File("D:/Kerja/txt/");
        destination = "D:/Kerja/hasil/";
        BufferedWriter writeFile;
        Date now;
        String prev = null, curr = null, next = null;
        for (File file : source.listFiles()) {
            sc = new Scanner(file);
            now = DateUtils.now();
            while (sc.hasNextLine()) {
                prev = curr;
                curr = next;
                next = sc.nextLine();
                for (int i = 0; i < nameFile.length; i++) {
                    if (StringUtils.containsIgnoreCase(nameFile[i].trim(),
                            next.substring(767).trim())) {
                        System.out.println("file name exist");
                        writeFile = new BufferedWriter(
                                new FileWriter(destination.concat(nameFile[i]).trim(), true));
                        writeFile.write(next);
                        writeFile.newLine();
                        writeFile.flush();
                        pilah.setCreatedBy(userExecutor);
                        pilah.setCreationDate(now);
                        pilah.setFlag('Y');
                        pilah.setFileName(nameFile[i]);
                        System.out.println(pilah.getFileName());
                        pilah.setLocationDir(destination);
                        pilah.setCardId(next.substring(1, 51).trim());
                        System.out.println(pilah.getCardId());
                        pilah.setOwner(next.substring(52, 102).trim());
                        System.out.println(pilah.getOwner());
                        System.out.println(pilah.toString());
                        repoPilah.save(pilah);
                    } else {
                        System.out.println("Invalid file name");
                    }
                }

            }
            sc.close();
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return pilah;
}

Здравствуйте, я новичок в загрузке Java. Пожалуйста, помогите мне. в моем контроллере я вызываю репозиторий (repoPilah) для сохранения данных каждый цикл (пока), но это просто сохранение последней строки из моего текстового файла. Я не знаю почему, тогда как, когда я печатаю каждый объект Get on (pilah), я могу получать данные каждую строку. Спасибо за внимание

1 Ответ

0 голосов
/ 09 сентября 2018

Вы должны создать объект pilah внутри цикла для каждой записи

PilahFile pilah = new PilahFile();

Переместите это внутри цикла, чтобы каждый раз создавать новый объект для сохранения.

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