添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
帅气的领带  ·  当遇到非法 URL ...·  3 周前    · 
想旅行的香烟  ·  urllib.error.URLError: ...·  2 周前    · 
纯真的保温杯  ·  Android ...·  2 周前    · 
挂过科的镜子  ·  AWVS ...·  1 周前    · 
考研的包子  ·  onchange事件 is not ...·  2 周前    · 

java 远程文件url如何转为输入流

作者:指尖挡不住流年

这篇文章主要介绍了java 远程文件url如何转为输入流方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

java 远程文件url 转为输入流

URL url = new URL(fileUrl); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //设置超时间为3秒 conn.setConnectTimeout(3*1000); //防止屏蔽程序抓取而返回403错误 conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); //得到输入流 InputStream inputStream = conn.getInputStream(); public static AjaxModel parseExcelForInfo(InputStream inputStream, String fileName, int taskId) { try { //创建workbook对象 Workbook workbook = null; if (fileName.contains(".xlsx")) { workbook = new XSSFWorkbook(inputStream); } else if (fileName.contains(".xls")) { workbook = new HSSFWorkbook(inputStream); } else { return AjaxModel.failed(-1, "文件类型不正确"); //获取第一个sheet表 Sheet sheetAt = workbook.getSheetAt(0); if (sheetAt != null) { // TODO 校验excel头 Row headRow = sheetAt.getRow(0); for (int i = 0; i < BusinessSettlementConstants.TEMPLATE_COULMN.length; i++) { if (!FileUtil.getCellFormatValue(headRow.getCell(i)).trim().equals(BusinessSettlementConstants.TEMPLATE_COULMN[i])) { LOGGER.info("parseExcelForInfo excel头部信息顺序不正确,getCellFormatValue(headRow.getCell(i)):{}," + "BusinessSettlementConstants.TEMPLATE_COULMN[i]:{},taskId:{}", FileUtil.getCellFormatValue(headRow.getCell(i)), BusinessSettlementConstants.TEMPLATE_COULMN[i], taskId); return AjaxModel.failed("excel标题头顺序不正确:" + FileUtil.getCellFormatValue(headRow.getCell(i))); int startRowNum = sheetAt.getFirstRowNum() + 1; int lastRowNum = sheetAt.getLastRowNum(); LOGGER.info("解析excel开始taskId:{},从【{}】行开始,到第【{}】行结束", taskId, startRowNum, lastRowNum); List<Map<String, String>> dataList = new ArrayList<Map<String, String>>(); for (int rowNum = startRowNum; rowNum <= lastRowNum; rowNum++) { // 每一行数据 Row row = sheetAt.getRow(rowNum); Map<String, String> map = new HashMap<>(); LOGGER.info("parseExcelForInfo row:{}", row); if (row != null && row.getCell(0) != null && StringUtils.isNotEmpty(row.getCell(0).getStringCellValue()) && row.getCell(2) != null && row.getCell(4) != null) { LOGGER.info("parseExcelForInfo row:{},cell:{}", row, row.getCell(0)); // 姓名 map.put("userName", FileUtil.getCellFormatValue(row.getCell(0))); dataList.add(map); LOGGER.info("--------------解析完成 dataList:{}", dataList); if (dataList.size() <= 0) { return AjaxModel.failed(-1, "解析表格数据为空"); AjaxModel success = AjaxModel.success(); success.getData().put("dataList", dataList); return success; } else { LOGGER.info("sheet内容为空"); return AjaxModel.failed(-1, "表格内容为空"); } catch (Exception e) { LOGGER.error("parseExcelForInfo 解析异常", e); return AjaxModel.failed(-1, "解析表格异常"); public static String getCellFormatValue(Cell cell) { cell.setCellType(CellType.STRING); return cell.getStringCellValue();

根据URL网址获取输入流

//文件访问路径 String url = ""; InputStream intstream = new URL(url).openStream(); public InputStream getInputStreamByUrl(String strUrl) { HttpURLConnection conn = null; try { URL url = new URL(strUrl); conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(20 * 1000); final ByteArrayOutputStream output = new ByteArrayOutputStream(); IOUtils.copy(conn.getInputStream(), output); return new ByteArrayInputStream(output.toByteArray()); } catch (Exception e) { logger.error("getInputStreamByUrl 异常,exception is {}", e); } finally { try { if (conn != null) { conn.disconnect(); } catch (Exception e) { return null;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • MyBatis Plus 导入IdType失败的解决
    MyBatis Plus 导入IdType失败的解决
    2021-12-12
  • mybatis-plus 执行insert(),实体的id自动更新问题
    mybatis-plus 执行insert(),实体的id自动更新问题
    2021-12-12
  • Java @Validated遇到的大坑与处理
    Java @Validated遇到的大坑与处理
    2021-12-12
  • 使用@Valid+BindingResult进行controller参数校验方式
    使用@Valid+BindingResult进行controller参数校验方式
    2021-12-12
  • mybatisplus @Select注解中拼写动态sql异常问题的解决
    mybatisplus @Select注解中拼写动态sql异常问题的解决
    2021-12-12
  • Java如何实现读取txt文件内容并生成Word文档
    Java如何实现读取txt文件内容并生成Word文档
    2021-12-12
  • 详细解读Java Spring AOP
    详细解读Java Spring AOP
    2021-12-12
  • mybatis新增save结束后自动返回主键id详解
    mybatis新增save结束后自动返回主键id详解
    2021-12-12
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号