当前位置: 首页 > news >正文

做网站建设还有钱赚吗小程序模板教程

做网站建设还有钱赚吗,小程序模板教程,深圳快速网站制作哪里好,wordpress菜单的作用一、前言 最近项目中需要实现这样一个功能#xff0c;就是从本地读取CSV文件#xff0c;并以指定行作为标题行#xff0c;指定行开始作为数据读取行#xff0c;读取数据并返回给前端#xff0c;下面具体说下是如何通过java实现。 二、如何实现#xff1f; 1.引入相关mav…一、前言 最近项目中需要实现这样一个功能就是从本地读取CSV文件并以指定行作为标题行指定行开始作为数据读取行读取数据并返回给前端下面具体说下是如何通过java实现。 二、如何实现 1.引入相关maven依赖 dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactId /dependency2.定义一个工具类CsvUtils。 import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.IterUtil; import cn.hutool.core.text.csv.CsvData; import cn.hutool.core.text.csv.CsvReader; import cn.hutool.core.text.csv.CsvRow; import cn.hutool.core.text.csv.CsvUtil;import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import java.io.*; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; public class CsvUtils {public static final String FIELD_NAMEcolumn;public static ListMapString, Object getCsvFileContent(InputStream in, Long readLine, int headerRowIndex, int readCount,String splitChar) throws IOException {InputStreamReader is null;CsvReader reader null;InputStream bufferedInputStreamOne null;InputStream bufferedInputStreamTwo null;ByteArrayOutputStream baos null;try {if (in null) {throw new FileStorageRuntimeException(文件读取失败文件不存在);}if (readLine null){readLine 2l;}ListMapString, Object resList new ArrayList();reader CsvUtil.getReader();baos new ByteArrayOutputStream();byte[] buffer new byte[1024*10];int len;while ((len in.read(buffer)) -1 ) {baos.write(buffer, 0, len);}baos.flush();bufferedInputStreamOnenew ByteArrayInputStream(baos.toByteArray());bufferedInputStreamTwonew ByteArrayInputStream(baos.toByteArray());boolean isUtf8checkUTF8(bufferedInputStreamOne);//从文件中读取CSV数据is new InputStreamReader(bufferedInputStreamTwo,Charset.forName(isUtf8 ? UTF-8:GBK));reader.setFieldSeparator(splitChar.charAt(0));reader.setSkipEmptyRows(false);CsvData data reader.read(is);ListCsvRow rows data.getRows();//空表格if (rows.isEmpty()) {return null;}ListString headRowList new ArrayList();if (headerRowIndex 0 rows.size()headerRowIndex - 1){//获取表头headRowList rows.get(headerRowIndex - 1).getRawList();}else {if (CollectionUtil.isNotEmpty(rows)){ListString rowListrows.get(0).getRawList();for(int i1;irowList.size();i) {headRowList.add(FIELD_NAMEi);}}}ListString headListnew ArrayList();for (int i0;iheadRowList.size();i) {String fieldName headRowList.get(i);if (StrUtil.isBlank(fieldName )) {headList.add(FIELD_NAME(i1));}else {headList.add(fieldName);}}if (CollUtil.isNotEmpty(rows)){CsvRow currCsvRow rows.get(0);if (headList.size() ! currCsvRow.getRawList().size()) {throw new FileStorageRuntimeException(列数量与数据数量不一致);}}if (readLine1) {//加上一行ListString addRawListNew headRowList.stream().map(s - StrUtil.trim(s)).collect(Collectors.toList());Map map IterUtil.toMap(headList, (Iterable) addRawListNew,true);resList.add(map);}//遍历行for (int i (int)((long)readLine)-1; i rows.size(); i) {CsvRow csvRow rows.get(i);//getRawList返回一个List列表列表的每一项为CSV中的一个单元格既逗号分隔部分ListString rawList csvRow.getRawList();ListString rawListNew rawList.stream().map(s - StrUtil.trim(s)).collect(Collectors.toList());Map map IterUtil.toMap(headList, (Iterable) rawListNew,true);resList.add(map);if(readCount0 ireadCount){break;}}return resList;} catch (Exception e) {e.printStackTrace();throw new RuntimeException(get inputStreamReader failed);} finally {if (in!null){in.close();}if (is!null){is.close();}if (reader!null){reader.close();}if(bufferedInputStreamTwo !null){bufferedInputStreamTwo.close();}if(bufferedInputStreamOne !null){bufferedInputStreamOne.close();}if (baos!null){baos.close();}}}/*** 判断文件内容是否为 UTF-8 编码* author*/public static boolean checkUTF8(InputStream fis) {//请注意fis是流是不能复用的try {while (true) {int curr fis.read();if (curr -1) {return true;}if (curr 0x80) {// (10000000): 值小于0x80的为ASCII字符} else if (curr (0xC0)) { // (11000000): 值介于0x80与0xC0之间的为无效UTF-8字符return false;} else if (curr (0xE0)) { // (11100000): 此范围内为2字节UTF-8字符if ((fis.read() (0xC0)) ! 0x80) {return false;}return true;} else if (curr (0xF0)) { // (11110000): 此范围内为3字节UTF-8字符if ((fis.read() (0xC0)) ! 0x80 || (fis.read() (0xC0)) ! 0x80) {return false;}return true;} else {return false;}}} catch (IOException e) {return true;}}}接着通过main方法调用下。 public static void main(String[] args) throws IOException {FileInputStream inputStream new FileInputStream(new File(D:\\111.csv));ListMapString, Object listgetCsvFileContent(inputStream,2l,1,50,,);System.err.println(list);}结果如下 其中readCount表示返回的数据数量。
http://www.pierceye.com/news/19532/

相关文章:

  • 凡科能上传自己做的网站网站空间到期时间查询
  • 做网站地图婚恋网站建设分析
  • 泰州网站制作价格江苏高效网站制作机构
  • 做网站 域名是怎么回事哪些大型网站用python做的
  • 昆明行业网站建设成都网页制作公司排名
  • 如何在阿里巴巴做网站求邯郸网站制作
  • 儿童才艺网站建设模板简单网站建设报价单
  • php做网站首页的代码网站地图制作
  • 机械类网站如何做网站优化北京海淀的公司
  • 网站制作公司官网首页google字体 wordpress
  • 广州工商学院门户网站广州有哪些建站公司
  • 深圳网站建设策划方案wordpress语言文件编辑器
  • php做的汽车销售网站网络工程师工作
  • wordpress电商建站零基础网站建设教学培训班
  • 网站建设择wordpress the_title
  • 省建设执业资格注册中心网站广州购物必去的地方
  • 马关县住房和城乡建设局网站江西泰飞建设有限公司网站
  • 百变模板手机网站建设啥也不懂怎么建设网站
  • 泗洪县建设局网站怎么查不到莆田有哪些网站建设公司
  • 给公司怎么做官方网站简单网站建设流程
  • 如何做局域网网站清溪东莞网站建设
  • 哈尔滨网站开发企业上海网站建设的网
  • 如何用dedecms做网站电子商务网站建设题
  • 南京外贸网站建设公司八百客crm登录入口
  • 福建省建设人才与科技发展中心网站dw做网站怎么排版
  • 自己做视频网站的流程wordpress显示一个分类列表名称
  • 上海网站推广策划女儿玩手机到深夜23点怎么办
  • 网站建设评估体系新民电商网站建设程序
  • 外国网站建设公司十堰有做百度推广的吗
  • 电商旅游网站策划书网站 开发 合同