文件系统(02):基于SpringBoot管理Xml和CSV( 二 )

3、执行效果图
文件系统(02):基于SpringBoot管理Xml和CSV文章插图
三、CSV文件管理1、CSV文件样式
文件系统(02):基于SpringBoot管理Xml和CSV文章插图
这里不需要依赖特定的Jar包 , 按照普通的文件读取即可 。
2、文件读取@Async@Overridepublic void readNotify(String path, Integer columnSize) throws Exception {File file = new File(path) ;String fileName = file.getName() ;int lineNum = 0 ;if (fileName.startsWith("data-")) {InputStreamReader isr = new InputStreamReader(new FileInputStream(file),"GBK") ;BufferedReader reader = new BufferedReader(isr);List dataInfoList = new ArrayList<>(4);String line;while ((line = reader.readLine()) != null) {lineNum ++ ;String[] dataArray = line.split(",");if (dataArray.length == columnSize) {String cityName = new String(dataArray[1].getBytes(),"UTF-8") ;dataInfoList.add(new DataInfo(Integer.parseInt(dataArray[0]),cityName,dataArray[2])) ;}if (dataInfoList.size() >= 4){LOGGER.info("容器数据:"+dataInfoList);dataInfoList.clear();}}if (dataInfoList.size()>0){LOGGER.info("最后数据:"+dataInfoList);}reader.close();}LOGGER.info("读取数据条数:"+lineNum);}3、文件创建@Async@Overridepublic void createCsv(List dataList,String path) throws Exception {File file = new File(path) ;boolean createFile = false ;if (file.exists()){boolean deleteFile = file.delete() ;LOGGER.info("deleteFile:"+deleteFile);}createFile = file.createNewFile() ;OutputStreamWriter ost = new OutputStreamWriter(new FileOutputStream(path),"UTF-8") ;BufferedWriter out = new BufferedWriter(ost);if (createFile){for (String line:dataList){if (!StringUtils.isEmpty(line)){out.write(line);out.newLine();}}}out.close();}4、编写测试接口这里基于Swagger2管理接口测试。
@Api("Csv接口管理")@RestControllerpublic class CsvWeb {@Resourceprivate CsvService csvService ;@ApiOperation(value="http://kandian.youth.cn/index/文件读取")@GetMapping("/csv/readNotify")public String readNotify (@RequestParam("path") String path,@RequestParam("column") Integer columnSize) throws Exception {csvService.readNotify(path,columnSize);return "success" ;}@ApiOperation(value="http://kandian.youth.cn/index/创建文件")@GetMapping("/csv/createCsv")public String createCsv (@RequestParam("path") String path) throws Exception {List dataList = new ArrayList<>() ;dataList.add("1,北京,beijing") ;dataList.add("2,上海,shanghai") ;dataList.add("3,苏州,suzhou") ;csvService.createCsv(dataList,path);return "success" ;}}文中涉及文件类型 , 在该章节源码ware18-file-parent/case-file-type目录下 。
推荐阅读:GitHub源码和分类管理 , 持续更新
文件系统(01):基于SpringBoot管理Excel和PDF
SpringBoot2 整合 Drools规则引擎 , 实现高效的业务规则
SpringBoot2 整合MinIO中间件 , 实现文件便捷管理
SpringBoot2.0 整合 Shiro 框架 , 实现用户权限管理
SpringBoot2 整合 ClickHouse数据库 , 实现高性能数据查询分析
SpringBoot2 整合FreeMarker模板 , 完成页面静态化处理
SpringBoot2 整合JTA组件 , 多数据源事务管理