最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問(wèn)題

 更新時(shí)間:2018年06月26日 09:53:00   作者:dandanfeng1992  
今天小編就為大家分享一篇解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

問(wèn)題:系統(tǒng)要求導(dǎo)入40萬(wàn)條excel數(shù)據(jù),采用poi方式,服務(wù)器出現(xiàn)內(nèi)存溢出情況。

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

故采用讀取csv格式。由于csv的數(shù)據(jù)以x1,x2,x3形成,類(lèi)似讀取txt文檔。

 private BufferedReader bReader;

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

  /**
   * 讀取csv并處理數(shù)據(jù)
   * @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 = "";
        //忽略第一行標(biāo)題
        for (int i = 0; i < 1; i++) { 
          line = bReader.readLine(); 
        }
        while((line = bReader.readLine()) != null){
          if (line.trim() != "") {
          //分割開(kāi)來(lái)的即是對(duì)應(yīng)的每個(gè)單元格,注意空的情況
            String[] result = line.split(",");

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

以上這篇解決Java導(dǎo)入excel大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

台中市| 阿坝| 中卫市| 郎溪县| 襄城县| 西华县| 齐齐哈尔市| 公安县| 呼伦贝尔市| 安阳县| 通山县| 万盛区| 阳原县| 微山县| 青田县| 鹰潭市| 梅州市| 泽普县| 永年县| 仙居县| 嘉善县| 临江市| 增城市| 甘洛县| 盐源县| 铜鼓县| 平原县| 金川县| 通渭县| 嵩明县| 莆田市| 石家庄市| 克拉玛依市| 密云县| 旬阳县| 泉州市| 漾濞| 唐河县| 黄浦区| 紫金县| 花莲县|