Как вернуть созданный файл во время исполнения программы?

В методе я получаю файл, обрабатываю его и возвращаю обработанный файл. Но если файла при компиляции нет, то мне выдает FileNotFoundException. Можно ли как то это исправить?

package regtab.server.service;


import com.regtab.core.model.ITable;
import com.regtab.core.model.Recordset;
import com.regtab.core.readers.CSVReader;
import com.regtab.core.rtl.interpreter.RTLPattern;
import com.regtab.core.writers.CSVWriter;
import lombok.RequiredArgsConstructor;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

@Service
@RequiredArgsConstructor
public class UploadService {
    private static final String UPLOADED_FOLDER = "src/main/resources/files/in/";
    private static final String PROCESS_FOlDER = "src/main/resources/files/";
    private final ResourceLoader resourceLoader;



    public ResponseEntity<Resource> uploadFile(MultipartFile file, String rtl) throws IOException {
        String fileName = file.getOriginalFilename();
        if (file.isEmpty()) {
            throw new RuntimeException();
        }

        try {
            byte[] bytes = file.getBytes();
            Path path = Paths.get(UPLOADED_FOLDER + fileName);
            Files.write(path, bytes);
            return processFile(fileName, rtl);

        } catch (IOException e) {
            throw new RuntimeException();
        }
    }

    private ResponseEntity<Resource> processFile (String fileName, String rtl) throws IOException {
        CSVReader csvReader = new CSVReader(UPLOADED_FOLDER + fileName);
        ITable table = csvReader.read();

        RTLPattern.apply(rtl, table);

        Recordset recordset = table.extract();

        CSVWriter csvWriter = new CSVWriter(PROCESS_FOlDER + "result.csv");
        csvWriter.write(recordset);

        return returnResult();
    }

    private ResponseEntity<Resource> returnResult() throws FileNotFoundException {
        Resource resource = resourceLoader.getResource("classpath:files/result.csv");
        return ResponseEntity.ok()
                .header("Content-Disposition", "attachment; filename=\"" + resource.getFilename() + "\"")
                .body(resource);
    }
}

Ответы (0 шт):