亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java遠程文件url怎么轉為輸入流

發布時間:2021-10-19 11:45:01 來源:億速云 閱讀:187 作者:iii 欄目:開發技術

這篇文章主要介紹“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<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;
    }

到此,關于“java遠程文件url怎么轉為輸入流”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临清市| 延寿县| 温宿县| 内乡县| 双牌县| 区。| 涡阳县| 封丘县| 冕宁县| 广西| 承德县| 济南市| 康定县| 金平| 左云县| 静宁县| 莱州市| 永清县| 贵溪市| 祁阳县| 察隅县| 武宁县| 隆回县| 宜黄县| 银川市| 万州区| 讷河市| 昭平县| 滦平县| 寻乌县| 贵南县| 新巴尔虎左旗| 专栏| 舒城县| 石渠县| 土默特左旗| 玛沁县| 合水县| 廊坊市| 四子王旗| 拉孜县|