中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

解決Java導入excel大量數據出現內存溢出的問題

發布時間:2020-09-04 00:18:08 來源:腳本之家 閱讀:508 作者:dandanfeng1992 欄目:編程語言

問題:系統要求導入40萬條excel數據,采用poi方式,服務器出現內存溢出情況。

解決方法:由于HSSFWorkbook workbook = new HSSFWorkbook(path)一次性將excel load到內存中導致內存不夠。

故采用讀取csv格式。由于csv的數據以x1,x2,x3形成,類似讀取txt文檔。

 private BufferedReader bReader;

  /**
   * 執行文件入口
   */
  public void execute() {
    try {
      if(!path.endsWith(".csv")){
        logger.info("-----該文件不是以CSV文件,請上傳正確的文件格式------");
        return ;
      }
      Long startTime = System.currentTimeMillis();
      logger.info("------開始執行定時任務,時間=" + startTime);
      readCSV(path);
      Long endTime = System.currentTimeMillis();
      logger.info("------結束定時任務,時間=" + endTime + "---耗時="
          + (endTime - startTime));
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * 讀取csv并處理數據
   * @param path
   * @throws Exception
   */
  private void readCSV(String path) throws Exception {
    File file = new File(path); 
    try {
      bReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "gbk"));
       String line = "";
        //忽略第一行標題
        for (int i = 0; i < 1; i++) { 
          line = bReader.readLine(); 
        }
        while((line = bReader.readLine()) != null){
          if (line.trim() != "") {
          //分割開來的即是對應的每個單元格,注意空的情況
            String[] result = line.split(",");

            }
          }
        } 
    } finally {
      if (bReader != null) {
        bReader.close();
      }
    }
  }

以上這篇解決Java導入excel大量數據出現內存溢出的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

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

AI

江永县| 明光市| 潮州市| 离岛区| 陕西省| 墨竹工卡县| 乐东| 衡山县| 屏东市| 宜城市| 甘德县| 太湖县| 六盘水市| 大兴区| 明光市| 丹江口市| 固原市| 虹口区| 宿松县| 嘉兴市| 昌乐县| 饶平县| 上思县| 桦川县| 海盐县| 民乐县| 抚州市| 赤城县| 潮安县| 绥中县| 大埔县| 榆社县| 永福县| 元氏县| 全南县| 都安| 新泰市| 金沙县| 永清县| 庆元县| 古蔺县|