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

视频网站app怎么做的百度seo优化是什么

视频网站app怎么做的,百度seo优化是什么,用jsp做一网站的流程,淘宝店采用哪些方法做网站推广一、前言 最近项目中需要实现这样一个功能,就是从本地读取CSV文件,并以指定行作为标题行,指定行开始作为数据读取行,读取数据并返回给前端,下面具体说下是如何通过java实现。 二、如何实现? 1.引入相关mav…

一、前言
最近项目中需要实现这样一个功能,就是从本地读取CSV文件,并以指定行作为标题行,指定行开始作为数据读取行,读取数据并返回给前端,下面具体说下是如何通过java实现。

二、如何实现?
1.引入相关maven依赖

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId>
</dependency>

2.定义一个工具类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_NAME="column";public static List<Map<String, 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;}List<Map<String, 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();bufferedInputStreamOne=new ByteArrayInputStream(baos.toByteArray());bufferedInputStreamTwo=new ByteArrayInputStream(baos.toByteArray());boolean isUtf8=checkUTF8(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);List<CsvRow> rows = data.getRows();//空表格;if (rows.isEmpty()) {return null;}List<String> headRowList =new ArrayList<>();if (headerRowIndex > 0 && rows.size()>headerRowIndex - 1){//获取表头;headRowList = rows.get(headerRowIndex - 1).getRawList();}else {if (CollectionUtil.isNotEmpty(rows)){List<String> rowList=rows.get(0).getRawList();for(int i=1;i<=rowList.size();i++) {headRowList.add(FIELD_NAME+i);}}}List<String> headList=new ArrayList<>();for (int i=0;i<headRowList.size();i++) {String fieldName = headRowList.get(i);if (StrUtil.isBlank(fieldName )) {headList.add(FIELD_NAME+(i+1));}else {headList.add(fieldName);}}if (CollUtil.isNotEmpty(rows)){CsvRow currCsvRow = rows.get(0);if (headList.size() != currCsvRow.getRawList().size()) {throw new FileStorageRuntimeException("列数量与数据数量不一致");}}if (readLine>1) {//加上一行List<String> 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中的一个单元格(既逗号分隔部分)List<String> rawList = csvRow.getRawList();List<String> rawListNew = rawList.stream().map(s -> StrUtil.trim(s)).collect(Collectors.toList());Map map = IterUtil.toMap(headList, (Iterable) rawListNew,true);resList.add(map);if(readCount>=0 && i>=readCount){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"));List<Map<String, Object>> list=getCsvFileContent(inputStream,2l,1,50,",");System.err.println(list);}

结果如下:
在这里插入图片描述
其中readCount表示返回的数据数量。

http://www.hkea.cn/news/449479/

相关文章:

  • 有哪些好的网站十大电商代运营公司
  • 个人网页设计欣赏网站整站优化快速排名
  • 多少钱立案seo 公司
  • 医学类的网站做Google百度怎么优化排名
  • 手机网站怎样做枸橼酸西地那非片的功效与作用
  • 邯郸做wap网站的公司六六seo基础运营第三讲
  • 六安市建设银行网站seo编辑的工作内容
  • seo外包平台福州百度快照优化
  • 橙子建站广告怎么投放竞价网络推广
  • 中国公司查询网站网络公司起名
  • wordpress邮箱内容更改一键关键词优化
  • 楼市最新消息2022年房价走势seo网络推广经理
  • wordpress免费中文企业主题seo权重优化软件
  • 周口网站建设哪家好济南专业seo推广公司
  • 济南网站忧化怎么把抖音关键词做上去
  • 网站建设与维护的题目网站点击软件排名
  • 网站收录服务企业网络的组网方案
  • nba排名灰色词seo排名
  • 如何建自己的个人网站深圳市seo上词多少钱
  • 迎访问中国建设银行网站_永久免费的电销外呼系统
  • 类似AG网站建设网络营销的十大特点
  • 河北盘古做的网站用的什么服务器品牌策划与推广
  • 做网站开发的是不是程序员品牌营销与推广
  • 安卓android软件seo搜索引擎优化方式
  • 网站设计培训课程引流推广平台
  • 做淘宝美工需要知道的网站app软件推广平台
  • 做自己个人网站搜索竞价
  • 兰州网站优化哪家好手机系统流畅神器
  • 广东深圳住房和城乡建设部网站文章优化软件
  • java制作动态网站开发怎么可以让百度快速收录视频