千家信息网

java远程文件url怎么转为输入流

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"java远程文件url怎么转为输入流",在日常操作中,相信很多人在java远程文件url怎么转为输入流问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"j
千家信息网最后更新 2025年11月07日java远程文件url怎么转为输入流

这篇文章主要介绍"java远程文件url怎么转为输入流",在日常操作中,相信很多人在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> dataList = new ArrayList>();            for (int rowNum = startRowNum; rowNum <= lastRowNum; rowNum++) {                // 每一行数据                Row row = sheetAt.getRow(rowNum);                Map 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;    }

到此,关于"java远程文件url怎么转为输入流"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文件 输入 学习 方法 表格 内容 数据 更多 顺序 帮助 实用 接下来 一行 信息 头部 姓名 对象 文章 标题 理论 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 奥的斯电梯服务器故障说明 惠众享深圳网络技术 网络安全责任制实施管理办法 深圳恰饭网络技术开发有限公司 网络安全手抄报初中a3纸 手机终端数据库搭建 neo4j如何导入数据库 云南服务器上门回收服务 0基础学软件开发买什么书 php数据库排序 数据库过大查询缓慢怎么解决 美国软件开发中学 数据库中添加成绩 组织收看网络安全培训班 布卡云电脑连接不到服务器 数据库可以存在相同的元组吗 公大网络安全考研真题 敏捷软件开发的特征有 在数据库中做表的备份 明日之后直播夏尔镇服务器 金掌柜软件开发 添加网络安全性选择那一项好 软考软件开发中级试题简答题 猫鼠服务器如何快速解除卡顿 计算机服务器研究方向怎么填 浅析计算机网络安全毕业论文 数据库多对一与一对多 北京hp服务器阵列卡安装服务器 ted演讲tweet网络安全 互联网科技与服务公司
0