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

Java基于EasyExcel實現(xiàn)讀取Excel文件詳解

 更新時間:2026年04月03日 11:39:18   作者:咘嚕biu  
這篇文章主要為大家詳細(xì)介紹了Java如何使用阿里巴巴的EasyExcel庫來讀取Excel文件,包括引入依賴、讀取器的實現(xiàn)以及一個簡單的測試示例,感興趣的小伙伴可以了解下

1.引入依賴

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.2.11</version>
</dependency>

2.讀取器代碼:

package com.visy.utils;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.cache.MapCache;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Consumer;

/**
 * @author visy.wang
 * @description: Excel讀取器
 * @date 2023/8/18 11:03
 */
@Slf4j
public class ExcelReader {

    public static void read(
        String fileName,
        Consumer<RowData> reader,
        Consumer<Integer> terminator
    ){
        NoModelDataListener listener = NoModelDataListener.create(reader, terminator);
        EasyExcel.read(fileName, listener).readCache(new MapCache()).sheet().doRead();
    }

	public static void read(
        String fileName,
        Consumer<RowData> reader
    ){
        read(fileName, reader, null);
    }

    public static void read(
        MultipartFile file,
        Consumer<RowData> reader,
        Consumer<Integer> terminator
    ) throws IOException {
        NoModelDataListener listener = NoModelDataListener.create(reader, terminator);
        EasyExcel.read(file.getInputStream(), listener).readCache(new MapCache()).sheet().doRead();
    }

	public static void read(
        MultipartFile file,
        Consumer<RowData> reader
    ) throws IOException {
        read(file, reader, null);
    }

    private static class NoModelDataListener extends AnalysisEventListener<Map<Integer, String>> {
        private int totalRows = 0;//讀取總行數(shù)
        private static final int BATCH_SIZE = 1000; //分批次,每一次讀取的行數(shù)
        private final Map<Integer, String> headMap = new HashMap<>();
        private final List<RowData> list = new ArrayList<>(BATCH_SIZE);

        private final Consumer<RowData> reader;
        private final Consumer<Integer> terminator;

        public static NoModelDataListener create(
            Consumer<RowData> reader,
            Consumer<Integer> terminator
        ){
            return new NoModelDataListener(reader, terminator);
        }

        private NoModelDataListener(
            Consumer<RowData> reader,
            Consumer<Integer> terminator
        ){
            this.reader = reader;
            this.terminator = terminator;
        }

        @Override
        public void invoke(Map<Integer, String> data, AnalysisContext context) {
            totalRows ++; //統(tǒng)計數(shù)據(jù)行數(shù)(排除表頭)
            invoke(data, context.readRowHolder().getRowIndex());
        }

        @Override
        public void invokeHeadMap(Map<Integer, String> head, AnalysisContext context) {
            headMap.putAll(head);//記錄表頭
            invoke(head, context.readRowHolder().getRowIndex());
        }

        @Override
        public void doAfterAllAnalysed(AnalysisContext context) {
            flush();
            if(Objects.nonNull(terminator)){
                terminator.accept(totalRows);
            }
        }

        private void flush(){
            if(!list.isEmpty()){
                doRead();
            }
        }

        private void invoke(Map<Integer, String> data, Integer rowIndex){
            list.add(RowData.builder().rowIndex(rowIndex).data(format(data)).build());
            if(list.size() >= BATCH_SIZE){
                doRead();
                list.clear();
            }
        }

        private void doRead(){
            list.forEach(reader);
        }

        private Map<String,String> format(Map<Integer, String> row){
            Map<String,String> result = new HashMap<>();
            if(headMap.isEmpty()){
                row.forEach((colIndex, value) -> {
                    result.put("Column"+colIndex, value);
                });
                return result;
            }
            headMap.forEach((colIndex, title) -> {
                String value = row.get(colIndex);
                result.put(title.trim(), value);
            });
            return result;
        }
    }

    @Data
    @Builder
    public static class RowData {
        private Integer rowIndex;
        private Map<String, String> data;

		/**
         * 翻譯
         * @param dict 字典<excel標(biāo)題,自定義字段名>
         * @return 翻譯后的data
         */
        public Map<String,String> translate(Map<String,String> dict){
            if(dict==null || dict.isEmpty()){
                return data;
            }
            String newKey;
            for (String key : data.keySet().toArray(new String[0])) {
                if((newKey = dict.get(key)) != null){
                    data.put(newKey, data.remove(key));
                }
            }
            return data;
        }
    }
}

3.測試

package com.visy.utils;

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;

import java.util.HashMap;
import java.util.Map;

/**
 * @author visy.wang
 * @date 2024/9/29 18:11
 */
@Slf4j
public class ExcelReaderTest {
    public static void main(String[] args) {
        String fileName = "D:\\test\\訂單.xls";
        Map<String, String> dict = new HashMap<>();
        dict.put("項目編碼", "projectNo");
        dict.put("訂單編號", "orderNo");
        ExcelReader.read(fileName, rowData -> {
            int rowNo = rowData.getRowIndex();
            if(rowNo == 0){
                log.info("第{}行,表頭:{}", rowNo+1, JSON.toJSONString(rowData.translate(dict)));
            }else{
                log.info("第{}行,數(shù)據(jù):{}", rowNo+1, JSON.toJSONString(rowData.translate(dict)));
            }
        }, total -> {
            log.info("所有數(shù)據(jù)已讀取完畢?。。?);
            log.info("一共讀取了{(lán)}行數(shù)據(jù)", total);
        });
    }
}

4.輸出

18:16:48,806  INFO ExcelReaderTest:23 - 第1行,表頭:{"序號":"序號","orderNo":"訂單編號","projectNo":"項目編碼","本次打款總金額":"本次打款總金額","結(jié)算單號":"結(jié)算單號"}
18:16:48,808  INFO ExcelReaderTest:25 - 第2行,數(shù)據(jù):{"序號":"1","orderNo":"ZC1839511598451183623","projectNo":"KPZCJ1337083789442","本次打款總金額":"8.00元","結(jié)算單號":"GSD1839485349116825600"}
18:16:48,809  INFO ExcelReaderTest:25 - 第3行,數(shù)據(jù):{"序號":"2","orderNo":"ZC1839511598451183623","projectNo":"KPZCJ1337083789442","本次打款總金額":"8.00元","結(jié)算單號":"GSD1839485422676529152"}
18:16:48,809  INFO ExcelReaderTest:25 - 第4行,數(shù)據(jù):{"序號":"3","orderNo":"ZC1839504517895606281","projectNo":"XDFW1409599599521","本次打款總金額":"660.00元","結(jié)算單號":"GSD1839504154316558336"}
18:16:48,809  INFO ExcelReaderTest:25 - 第5行,數(shù)據(jù):{"序號":"4","orderNo":"ZC1839504517895606281","projectNo":"XDFW1409599599521","本次打款總金額":"660.00元","結(jié)算單號":"GSD1839504199178833920"}
18:16:48,810  INFO ExcelReaderTest:25 - 第6行,數(shù)據(jù):{"序號":"5","orderNo":"ZC1839504517895606281","projectNo":"XDFW1409599599521","本次打款總金額":"660.00元","結(jié)算單號":"GSD1839504234847195136"}
18:16:48,810  INFO ExcelReaderTest:25 - 第7行,數(shù)據(jù):{"序號":"6","orderNo":"ZC1821415146298589186","projectNo":"DY11432043204258","本次打款總金額":"10.30元","結(jié)算單號":"GSD1821414066009456640"}
18:16:48,810  INFO ExcelReaderTest:25 - 第8行,數(shù)據(jù):{"序號":"7","orderNo":"ZC1808791262713888770","projectNo":"KPZCJ14131713172905","本次打款總金額":"2.40元","結(jié)算單號":"GSD1808752241082122240"}
18:16:48,811  INFO ExcelReaderTest:25 - 第9行,數(shù)據(jù):{"序號":"8","orderNo":"ZC1803003717728751618","projectNo":"KPZCJ17264326435074","本次打款總金額":"4.22元","結(jié)算單號":"GSD1803002522666684416"}
18:16:48,811  INFO ExcelReaderTest:25 - 第10行,數(shù)據(jù):{"序號":"9","orderNo":"ZC1802909083988021250","projectNo":"KPZCJ10285028505852","本次打款總金額":"140.18元","結(jié)算單號":"GSD1802908824310272000"}
18:16:48,811  INFO ExcelReaderTest:25 - 第11行,數(shù)據(jù):{"序號":"10","orderNo":"ZC1752938634642669569","projectNo":"DY16231023106597","本次打款總金額":"326.94元","結(jié)算單號":"GSD1752938314889904128"}
18:16:48,811  INFO ExcelReaderTest:25 - 第12行,數(shù)據(jù):{"序號":"11","orderNo":"ZC1751809098261639169","projectNo":"DY11211521153170","本次打款總金額":"165.11元","結(jié)算單號":"GSD1751806326732709888"}
18:16:48,811  INFO ExcelReaderTest:25 - 第13行,數(shù)據(jù):{"序號":"12","orderNo":"ZC1751803125170135042","projectNo":"DY11211521153170","本次打款總金額":"990.66元","結(jié)算單號":"GSD1751802752413949952"}
18:16:48,811  INFO ExcelReaderTest:25 - 第14行,數(shù)據(jù):{"序號":"13","orderNo":"ZC1749719747436433410","projectNo":"DY16524552459874","本次打款總金額":"79.66元","結(jié)算單號":"GSD1749719630004310016"}
18:16:48,811  INFO ExcelReaderTest:25 - 第15行,數(shù)據(jù):{"序號":"14","orderNo":"ZC1748169486398042114","projectNo":"DY1004364367372","本次打款總金額":"199.13元","結(jié)算單號":"GSD1748167443449032704"}
18:16:48,812  INFO ExcelReaderTest:25 - 第16行,數(shù)據(jù):{"序號":"15","orderNo":"ZC1747882440458670080","projectNo":"DY11121112110728","本次打款總金額":"36.32元","結(jié)算單號":"GSD1747882279347064832"}
18:16:48,813  INFO ExcelReaderTest:25 - 第17行,數(shù)據(jù):{"序號":"16","orderNo":"ZC1747874805231616001","projectNo":"DY11121112110728","本次打款總金額":"36.32元","結(jié)算單號":"GSD1747874605553385472"}
18:16:48,813  INFO ExcelReaderTest:25 - 第18行,數(shù)據(jù):{"序號":"17","orderNo":"ZC1734088151878545408","projectNo":"DY11104310438950","本次打款總金額":"22.00元","結(jié)算單號":"GSD1734087575031721984"}
18:16:48,813  INFO ExcelReaderTest:25 - 第19行,數(shù)據(jù):{"序號":"18","orderNo":"ZC1734049237461590018","projectNo":"DY11104310438950","本次打款總金額":"22.00元","結(jié)算單號":"GSD1734049137159004160"}
18:16:48,813  INFO ExcelReaderTest:25 - 第20行,數(shù)據(jù):{"序號":"19","orderNo":"ZC16999558515156526","projectNo":"KPZCJ16141014108222","本次打款總金額":"7.07元","結(jié)算單號":"GSD16996681699402290"}
18:16:48,813  INFO ExcelReaderTest:25 - 第21行,數(shù)據(jù):{"序號":"20","orderNo":"ZC16999548202909446","projectNo":"KPZCJ16141014108222","本次打款總金額":"2.02元","結(jié)算單號":"GSD16996686241470609"}
18:16:48,813  INFO ExcelReaderTest:25 - 第22行,數(shù)據(jù):{"序號":"21","orderNo":"ZC16994333820644684","projectNo":"DY16445644569459","本次打款總金額":"6.00元","結(jié)算單號":"GSD16994333480323046"}
18:16:48,813  INFO ExcelReaderTest:25 - 第23行,數(shù)據(jù):{"序號":"22","orderNo":"ZC16994329855599490","projectNo":"DY16361336133168","本次打款總金額":"12.00元","結(jié)算單號":"GSD16994328986634071"}
18:16:48,813  INFO ExcelReaderTest:25 - 第24行,數(shù)據(jù):{"序號":"23","orderNo":"ZC16994311498202085","projectNo":"DY15303630362489","本次打款總金額":"6.00元","結(jié)算單號":"GSD16994289014792143"}
18:16:48,814  INFO ExcelReaderTest:25 - 第25行,數(shù)據(jù):{"序號":"24","orderNo":"ZC16994307629649811","projectNo":"DY15261026100064","本次打款總金額":"12.00元","結(jié)算單號":"GSD16994302164484906"}
18:16:48,814  INFO ExcelReaderTest:25 - 第26行,數(shù)據(jù):{"序號":"25","orderNo":"ZC16927707974275190","projectNo":"DY110400409587","本次打款總金額":"79.66元","結(jié)算單號":"GSD16927707572422541"}
18:16:48,815  INFO ExcelReaderTest:25 - 第27行,數(shù)據(jù):{"序號":"26","orderNo":"ZC16925872256331116","projectNo":"DY110400409587","本次打款總金額":"79.66元","結(jié)算單號":"GSD16925872037735498"}
18:16:48,815  INFO ExcelReaderTest:25 - 第28行,數(shù)據(jù):{"序號":"27","orderNo":"ZC16925846964571442","projectNo":"DY110400409587","本次打款總金額":"39.83元","結(jié)算單號":"GSD16925844343207431"}
18:16:48,815  INFO ExcelReaderTest:25 - 第29行,數(shù)據(jù):{"序號":"28","orderNo":"ZC16925846510308639","projectNo":"DY110400409587","本次打款總金額":"39.83元","結(jié)算單號":"GSD16925844596560052"}
18:16:48,815  INFO ExcelReaderTest:25 - 第30行,數(shù)據(jù):{"序號":"29","orderNo":"ZC16919940906941897","projectNo":"XDFW14144314434895","本次打款總金額":"10500.00元","結(jié)算單號":"GSD16787892369452546"}
18:16:48,815  INFO ExcelReaderTest:25 - 第31行,數(shù)據(jù):{"序號":"30","orderNo":"ZC16905399739424309","projectNo":"DY17584958493645","本次打款總金額":"9.00元","結(jié)算單號":"GSD16905399441575256"}
18:16:48,816  INFO ExcelReaderTest:25 - 第32行,數(shù)據(jù):{"序號":"31","orderNo":"ZC16905396284758057","projectNo":"DY10152215222400","本次打款總金額":"3.06元","結(jié)算單號":"GSD16738389 649603486"}
18:16:48,816  INFO ExcelReaderTest:25 - 第33行,數(shù)據(jù):{"序號":"32","orderNo":"ZC16899050424420841","projectNo":"DY1406526528402","本次打款總金額":"1864.80元","結(jié)算單號":"GSD16786909746185396"}
18:16:48,816  INFO ExcelReaderTest:25 - 第34行,數(shù)據(jù):{"序號":"33","orderNo":"ZC16892358221182248","projectNo":"DY1728032832239","本次打款總金額":"866.55元","結(jié)算單號":"GSD16892357362093868"}
18:16:48,816  INFO ExcelReaderTest:25 - 第35行,數(shù)據(jù):{"序號":"34","orderNo":"ZC16892354367835727","projectNo":"KPZCJ14564156418064","本次打款總金額":"3999.98元","結(jié)算單號":"GSD16892353931173843"}
18:16:48,816  INFO ExcelReaderTest:25 - 第36行,數(shù)據(jù):{"序號":"35","orderNo":"ZC16890449150466564","projectNo":"KPZCJ17354735471383","本次打款總金額":"29.91元","結(jié)算單號":"GSD16890448923257346"}
18:16:48,816  INFO ExcelReaderTest:25 - 第37行,數(shù)據(jù):{"序號":"36","orderNo":"ZC16872536243521878","projectNo":"DY1058035839472","本次打款總金額":"2.00元","結(jié)算單號":"GSD16872535451495391"}
18:16:48,817  INFO ExcelReaderTest:25 - 第38行,數(shù)據(jù):{"序號":"37","orderNo":"ZC16868187396317669","projectNo":"SZBF11313331330765","本次打款總金額":"1.02元","結(jié)算單號":"GSD16868183981406607"}
18:16:48,817  INFO ExcelReaderTest:25 - 第39行,數(shù)據(jù):{"序號":"38","orderNo":"ZC16855920288559728","projectNo":"XDFW10492049206753","本次打款總金額":"3.00元","結(jié)算單號":"GSD16632261371210492"}
18:16:48,817  INFO ExcelReaderTest:25 - 第40行,數(shù)據(jù):{"序號":"39","orderNo":"ZC16850945519224107","projectNo":"KPZCJ1006476478025","本次打款總金額":"4.00元","結(jié)算單號":"GSD16850943918013630"}
18:16:48,817  INFO ExcelReaderTest:25 - 第41行,數(shù)據(jù):{"序號":"40","orderNo":"ZC16850834105212888","projectNo":"KPZCJ09285228529226","本次打款總金額":"30.00元","結(jié)算單號":"GSD16850832789336942"}
18:16:48,817  INFO ExcelReaderTest:25 - 第42行,數(shù)據(jù):{"序號":"41","orderNo":"ZC16842058367487716","projectNo":"DY17591159110698","本次打款總金額":"75.60元","結(jié)算單號":"GSD16842057388913427"}
18:16:48,817  INFO ExcelReaderTest:25 - 第43行,數(shù)據(jù):{"序號":"42","orderNo":"ZC16800783925056545","projectNo":"KPZCJ11104710473286","本次打款總金額":"20.00元","結(jié)算單號":"GSD16800783250594232"}
18:16:48,818  INFO ExcelReaderTest:25 - 第44行,數(shù)據(jù):{"序號":"43","orderNo":"ZC16795435813626761","projectNo":"KPZCJ1406516514663","本次打款總金額":"10.00元","結(jié)算單號":"GSD16723051679897456"}
18:16:48,818  INFO ExcelReaderTest:25 - 第45行,數(shù)據(jù):{"序號":"44","orderNo":"ZC16790400403067732","projectNo":"DY10102010200793","本次打款總金額":"1050.00元","結(jié)算單號":"GSD16790398836718985"}
18:16:48,819  INFO ExcelReaderTest:25 - 第46行,數(shù)據(jù):{"序號":"45","orderNo":"ZC16788812382862096","projectNo":"KPZCJ16341034103659","本次打款總金額":"3500.00元","結(jié)算單號":"GSD16787998193851173"}
18:16:48,819  INFO ExcelReaderTest:25 - 第47行,數(shù)據(jù):{"序號":"46","orderNo":"ZC16788812382862096","projectNo":"KPZCJ16341034103659","本次打款總金額":"3500.00元","結(jié)算單號":"GSD16788809089372484"}
18:16:48,819  INFO ExcelReaderTest:25 - 第48行,數(shù)據(jù):{"序號":"47","orderNo":"ZC16788812382862096","projectNo":"KPZCJ16341034103659","本次打款總金額":"3500.00元","結(jié)算單號":"GSD16788809206582070"}
18:16:48,819  INFO ExcelReaderTest:25 - 第49行,數(shù)據(jù):{"序號":"48","orderNo":"ZC16788743433892843","projectNo":"SZWJ1608298295724","本次打款總金額":"17.85元","結(jié)算單號":"GSD16788743263213068"}
18:16:48,819  INFO ExcelReaderTest:25 - 第50行,數(shù)據(jù):{"序號":"49","orderNo":"ZC16788740588721943","projectNo":"KPZCJ16341034103659","本次打款總金額":"500.00元","結(jié)算單號":"GSD16787998193851173"}
18:16:48,819  INFO ExcelReaderTest:25 - 第51行,數(shù)據(jù):{"序號":"50","orderNo":"ZC16788739134573304","projectNo":"KPZCJ16341034103659","本次打款總金額":"500.00元","結(jié)算單號":"GSD16788738549722418"}
18:16:48,820  INFO ExcelReaderTest:25 - 第52行,數(shù)據(jù):{"序號":"51","orderNo":"ZC16788716782212770","projectNo":"DY1103153151761","本次打款總金額":"1.00元","結(jié)算單號":"GSD16788715186262758"}
18:16:48,820  INFO ExcelReaderTest:25 - 第53行,數(shù)據(jù):{"序號":"52","orderNo":"ZC16788654801253827","projectNo":"KPZCJ16341034103659","本次打款總金額":"500.00元","結(jié)算單號":"GSD16787998193851173"}
18:16:48,820  INFO ExcelReaderTest:25 - 第54行,數(shù)據(jù):{"序號":"53","orderNo":"ZC16787979223672877","projectNo":"XDFW18294329432132","本次打款總金額":"10000.00元","結(jié)算單號":"GSD16787978625297159"}
18:16:48,820  INFO ExcelReaderTest:25 - 第55行,數(shù)據(jù):{"序號":"54","orderNo":"ZC16787886778675181","projectNo":"XDFW14144314434895","本次打款總金額":"10500.00元","結(jié)算單號":"GSD16787774522225825"}
18:16:48,820  INFO ExcelReaderTest:25 - 第56行,數(shù)據(jù):{"序號":"55","orderNo":"ZC16787653644827069","projectNo":"SZWJ1504284280423","本次打款總金額":"500.00元","結(jié)算單號":"GSD16787653162134561"}
18:16:48,820  INFO ExcelReaderTest:25 - 第57行,數(shù)據(jù):{"序號":"56","orderNo":"ZC16787612066579887","projectNo":"DY10282728275505","本次打款總金額":"1.00元","結(jié)算單號":"GSD16787611608613990"}
18:16:48,820  INFO ExcelReaderTest:25 - 第58行,數(shù)據(jù):{"序號":"57","orderNo":"ZC16786771793559126","projectNo":"DY1537003703480","本次打款總金額":"330.22元","結(jié)算單號":"GSD16686513487010319"}
18:16:48,820  INFO ExcelReaderTest:25 - 第59行,數(shù)據(jù):{"序號":"58","orderNo":"ZC16775798382046422","projectNo":"DY17221322139928","本次打款總金額":"1.03元","結(jié)算單號":"GSD16639253044471437"}
18:16:48,821  INFO ExcelReaderTest:25 - 第60行,數(shù)據(jù):{"序號":"59","orderNo":"ZC16775798382040667","projectNo":"DY13435143514308","本次打款總金額":"8.24元","結(jié)算單號":"GSD16637505266694295"}
18:16:48,822  INFO ExcelReaderTest:25 - 第61行,數(shù)據(jù):{"序號":"60","orderNo":"ZC16768736820910414","projectNo":"DY1734043445892","本次打款總金額":"12.00元","結(jié)算單號":"GSD16768736573639000"}
18:16:48,822  INFO ExcelReaderTest:25 - 第62行,數(shù)據(jù):{"序號":"61","orderNo":"ZC16738489062053782","projectNo":"DY09541754174685","本次打款總金額":"4.22元","結(jié)算單號":"GSD16738487696523049"}
18:16:48,822  INFO ExcelReaderTest:25 - 第63行,數(shù)據(jù):{"序號":"62","orderNo":"ZC16732451795398771","projectNo":"DY13575957594749","本次打款總金額":"2.04元","結(jié)算單號":"GSD16732450923115297"}
18:16:48,822  INFO ExcelReaderTest:25 - 第64行,數(shù)據(jù):{"序號":"63","orderNo":"ZC16717828381432892","projectNo":"KPZCJ09531953193955","本次打款總金額":"100.99元","結(jié)算單號":"GSD16697992239288898"}
18:16:48,822  INFO ExcelReaderTest:29 - 所有數(shù)據(jù)已讀取完畢?。?!
18:16:48,822  INFO ExcelReaderTest:30 - 一共讀取了63行數(shù)據(jù)

到此這篇關(guān)于Java基于EasyExcel實現(xiàn)讀取Excel文件詳解的文章就介紹到這了,更多相關(guān)Java EasyExcel讀取Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解java線程的開始、暫停、繼續(xù)

    詳解java線程的開始、暫停、繼續(xù)

    本文將介紹通過線程讀取文件內(nèi)容,并且可以控制線程的開始、暫停、繼續(xù),來控制讀文件。具有一定的參考作用,下面跟著小編一起來看下吧
    2017-01-01
  • java實現(xiàn)遠(yuǎn)程連接執(zhí)行命令行與上傳下載文件

    java實現(xiàn)遠(yuǎn)程連接執(zhí)行命令行與上傳下載文件

    這篇文章主要介紹了java實現(xiàn)遠(yuǎn)程連接執(zhí)行命令行與上傳下載文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Springmvc返回html頁面問題如何解決

    Springmvc返回html頁面問題如何解決

    這篇文章主要介紹了Springmvc返回html頁面問題如何解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Java調(diào)用py或者exe文件實現(xiàn)Word轉(zhuǎn)PDF

    Java調(diào)用py或者exe文件實現(xiàn)Word轉(zhuǎn)PDF

    這篇文章主要為大家詳細(xì)介紹了Java如何調(diào)用py或者exe文件實現(xiàn)Word轉(zhuǎn)PDF效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解下
    2025-03-03
  • 從零開始SSM搭建步驟(圖文)

    從零開始SSM搭建步驟(圖文)

    這篇文章主要介紹了從零開始SSM搭建步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java將Word文檔轉(zhuǎn)換為PDF文件的幾種常用方法總結(jié)

    Java將Word文檔轉(zhuǎn)換為PDF文件的幾種常用方法總結(jié)

    這篇文章主要介紹了Java將Word文檔轉(zhuǎn)換為PDF文件的四種常用方法,分別使用ApachePOI+iText、Aspose.Words?for?Java、Docx4j和JODConverter,這些庫各有優(yōu)點,但在使用時需要注意庫與Java環(huán)境的兼容性、安裝所需依賴、轉(zhuǎn)換速度和資源消耗,需要的朋友可以參考下
    2024-10-10
  • java實現(xiàn)DWG文件轉(zhuǎn)圖片的示例代碼

    java實現(xiàn)DWG文件轉(zhuǎn)圖片的示例代碼

    在Java中將DWG文件轉(zhuǎn)換為圖片是一個常見的需求,下面將詳細(xì)介紹如何使用Java將DWG文件轉(zhuǎn)換為圖片,并探討幾個流行的解決方案,大家可以根據(jù)需要進(jìn)行選擇
    2025-10-10
  • Java Caffeine 高性能緩存庫詳解與使用案例詳解

    Java Caffeine 高性能緩存庫詳解與使用案例詳解

    Caffeine是Java生態(tài)中最先進(jìn)的本地緩存庫,其 高性能、低延遲 的設(shè)計使其成為現(xiàn)代應(yīng)用的首選,通過靈活的配置和強(qiáng)大的統(tǒng)計功能,開發(fā)者可以輕松實現(xiàn)高效的緩存策略,顯著提升系統(tǒng)性能,本文介紹Java Caffeine高性能緩存庫詳解與使用案例,感興趣的朋友一起看看吧
    2025-10-10
  • Spring?IOC容器基于XML外部屬性文件的Bean管理

    Spring?IOC容器基于XML外部屬性文件的Bean管理

    這篇文章主要為大家介紹了Spring?IOC容器Bean管理XML外部屬性文件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Java字符拼接成字符串的注意點詳解

    Java字符拼接成字符串的注意點詳解

    這篇文章主要介紹了Java字符拼接成字符串的注意點詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論

花莲县| 余姚市| 嘉峪关市| 杨浦区| 马龙县| 海宁市| 浪卡子县| 修水县| 唐山市| 濉溪县| 荃湾区| 云林县| 上饶县| 东兴市| 桐城市| 永兴县| 霍州市| 南通市| 南召县| 泸水县| 当雄县| 天全县| 凤山县| 玛沁县| 德昌县| 江川县| 溆浦县| 崇仁县| 武强县| 福海县| 安新县| 彝良县| 新竹县| 乌苏市| 威宁| 五华县| 华亭县| 庆城县| 揭西县| 平武县| 黄浦区|