Чтение файла CSV, исключение файла не найдено - PullRequest
0 голосов
/ 03 декабря 2018

Я работаю над модулем, который принимает файл csv, загружает его внутрь в "C:/projectUpload/Upload".

Во-вторых, у меня есть метод parseCSVWithHeader(Class <T> class, String fileName), который будет читать содержимое файла и затем возвращать объект javaиз того же.

Теперь я немного запутался, у меня есть несколько вопросов относительно всей загрузки файлов и архитектуры чтения.Я получаю исключение NullPoiterException, так как new FIleReader(fileName) не нашел ни одного файла.

  1. Я отладил и обнаружил, что только имя файла передается в FileReader (i, e new.csv).Ожидает ли FileReader полного пути к файлу в строке?Если да, то по какому пути

    Исходный случайный путь загрузки или путь, по которому мы решили сохранить на нем файлы?

  2. Необходимо ли загружать входной файл пользователем в каком-либо другом месте?

КОД КОНТРОЛЛЕРА:

@RequestMapping(value = "/save", method = RequestMethod.POST)
    public void saveData(@ModelAttribute("fileInfo") UploadFileInfo fileInfo, HttpServletRequest request) throws IOException, MyExceptionHandler {

        String filePath = fileUploadUtility.uploadFile(fileInfo.getUploadDocument().getFile().getBytes(), UploadPathEnum.SignedPDF, "ACR_" + fileInfo.getTableId() + "_" + "_" + System.currentTimeMillis() + ".csv");


        List<UserInfo> info = new ArrayList<>();
        info = readerUtil.parseCSVWithHeader(UserInfo.class,fileInfo.getUploadDocument().getFile().getName());
        for(UserInfo user:info)
        {
            System.out.println("user id"+ user.getUserId());  
            System.out.println("user id"+ user.getFirstName());
            System.out.println("user id"+ user.getLastName()); 
        }

//        System.out.println("file path is:" + filePath);
    }

CSVReaderUtil

public class CSVReaderUtil {

//    public CSVReaderUtil(FileReader fileReader, char par) {
//    }

    public static <T> List<T> parseCSVWithHeader(Class<T> cls, String fileName)
            throws IOException {
        CSVReader reader = null;
        try {
            reader = new CSVReader(new FileReader(fileName), ',');
            MappingStrategy<T> beanStrategy = new HeaderColumnNameMappingStrategy<>();
            beanStrategy.setType(cls);

            CsvToBean<T> csvToBean = new CsvToBean<>();
            List<T> emps = csvToBean.parse(beanStrategy, reader);
            System.out.println(emps);
            return emps;

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
            reader.close();
        }

    }
}

Я делаю вещи в правильном направлении или нет?

...