• Java读取txt文件、excel文件的方法


    Java读取txt文件、excel文件的方法

    1.读取txt文件

     public static String getFileContent(String filePath,String charset){//filePath为文件路径,charset为字符编码。通常使用UTF-8
    		File file = new File(filePath);
    	    BufferedReader reader = null;
    	    String tempString = null;
    	    int line =1;
    	    StringBuffer str = new StringBuffer();
    	    try {
    	        log.error("以行为单位读取文件内容,一次读一整行:");
    	        InputStreamReader isr = new InputStreamReader(new FileInputStream(file), charset);  
    	        reader = new BufferedReader(isr);
    	        while ((tempString = reader.readLine()) != null) {
    	        	//log.info("Line"+ line + ":" +tempString);
    	        	str.append(tempString + "
    ");
    	            line ++ ;
    	        }
    	        reader.close();
    	    } catch (FileNotFoundException e) {
    	    	log.error("文件不存在:",e);
    	    } catch (IOException e) {
    	        // TODO Auto-generated catch block
    	    	log.error("文件读取异常:",e);
    	    }finally{
    	        if(reader != null){
    	            try {
    	                reader.close();
    	            } catch (IOException e) {
    	            	log.error("文件读取异常:",e);
    	            }
    	        }
    	    }
    	    System.out.println(str.toString());
    	    return str.toString();
    	}
    

    读取的数据为一行一行的字符串,可以使用String接收,使用split切分,获取自己需要的数据,举例如下:

    String response = FileHelper.getFileContent(fileUrl,"UTF-8");
                if(!StringUtil.isEmptyStr(response)){
                    String[] sz = response.split("\n");
                    Map<String,Object> statementMap = null;
                    List<Map<String,Object>> statementList = new ArrayList<Map<String,Object>>();
                    for (int i = 0; i < sz.length; i++){
                            statementMap = new HashMap<String,Object>();
                            String[] statement = sz[i].split("\|\|\|",-1);
                            String account = statement[0];
                            String figer = statement[1];
                            String number = statement[2];
                            String proName = statement[3];
                            String expTime = statement[4];
    
                            statementMap.put("account", account);
                            statementMap.put("figer", figer);
                            statementMap.put("number", number);
                            statementMap.put("proName", proName);
                            statementMap.put("expTime", expTime);
                            statementList.add(statementMap);
                    }
                    resultMap.put("list", statementList);
    

    2.读取excel文件

       /*
    	* 获取excel某列数据方法
    	*/
        public static List<String> readExcel(String filePath){
            File file = new File(filePath);
            List<String> headList = new ArrayList<>();
            InputStream in = null;
            try {
                in = new FileInputStream(file);
                XSSFWorkbook wb = new XSSFWorkbook(in);
                XSSFSheet sheet = wb.getSheetAt(0); //获取第一张工作表
                int firstRowNum = sheet.getFirstRowNum();
                int lastRowNum = sheet.getLastRowNum();
                XSSFRow row = sheet.getRow(sheet.getFirstRowNum());//判断表行是否为空
                if (null == row){//表空,直接返回
                    return headList;
                }
                for (int i = firstRowNum + 1; i <= lastRowNum; i++) {//遍历行,第一行为表头,跳过
                    row = sheet.getRow(i);
                    XSSFCell cell = row.getCell(0);//取每行的第一列数据,可根据需要修改或者遍历
                    if (StrHelper.isNotEmpty(cell.getStringCellValue().trim())){
                        headList.add(cell.getStringCellValue().trim());
                        System.out.println(cell.getStringCellValue().trim());
                    }
                }
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
            } finally{
                try {
                    if(in != null){
                        in.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return headList;
        }
    

    读取的数据为String数组,可以使用List接收,获取自己需要的数据,举例如下:

    List<String> response = FileHelper.readExcel(fileUrl);
    
  • 相关阅读:
    go语言实现拉取矿币最新价格等信息
    MySQL 8 主从搭建
    小米11ULTRA偷渡开发版+刷MAGISK+EDXPOSED
    常见插值算法--拉格朗日插值、三次卷积插值、三次样条插值、兰克索斯插值
    Effective Python Ver2.0_StudyNotes_纯属性与修饰器取代旧式的setter与getter方法
    Effective Python Ver2.0_StudyNotes_使用类体系去解决多层嵌套问题
    c# 异步调用 利用委托异步调用
    redis设计与实现-读书笔记
    springboot揭秘-读书笔记
    redis深度历险-读书笔记
  • 原文地址:https://www.cnblogs.com/wtao0730/p/15028060.html
Copyright © 2020-2023  润新知