读取CSV文件,未找到文件异常

时间:2018-12-03 17:49:33

标签: java spring-mvc opencsv

我正在研究接受csv文件的模块,并将其上传到"C:/projectUpload/Upload"

第二,我有方法parseCSVWithHeader(Class <T> class, String fileName),它将读取文件的内容,然后返回相同的java对象。

现在我有点困惑,我对整个文件上传和读取架构有一些疑问。我收到NullPoiterException,因为new FIleReader(fileName)找不到任何文件。

  1. 我调试了一下,发现只有文件名被传递到FileReader(即new.csv)。 FileReader是否期望String中文件的整个路径。如果是,那么哪个路径

    原始随机上载路径还是我们决定在其上存储文件的路径?

  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();
        }

    }
}

我在正确的方向上做东西吗?

0 个答案:

没有答案