• Java 的 FileFilter文件过滤,readline读行操作


    package com.cjonline.foundation.evisa;
    
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileFilter;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.math.BigDecimal;
    
    public class Test {
        
        public static void main(String[] args) throws Exception {
            //文件过滤器,文件路径可以使用D:\pressTest\test绝对路径,也可以用src/test。
            File[] files = new File("src").listFiles(new FileFilter() {
                public boolean accept(File arg0) {
                    if(arg0.getName().endsWith(".txt")){//选择txt文件
                        return true;
                    }
                    return false;
                }
            });
            FileInputStream is =null;    //输入流读取文件
            BufferedReader dr =null;    //读行
            for (File file : files) {
                System.out.println("---------【 file name : "+ file.getName() +"】----------");
                is =new FileInputStream(file);
                dr=new BufferedReader(new InputStreamReader(is)); 
                String[] strings = new String[]{"Total transferred:","Requests per second:","[ms] (mean)","Time per request:",
                        "Transfer rate:","Failed requests:","Write errors:"};
                BigDecimal[] BigDecimals = calPress(dr);
                int i=0;
                for (BigDecimal BigDecimal : BigDecimals) {
                    System.out.println(strings[i]+"        "+BigDecimal);
                    i++;
                }
                System.out.println();
            }
            dr.close();
            is.close();
        }
    
        private static BigDecimal[] calPress(BufferedReader dr)
                throws IOException {
            BigDecimal[] res = new BigDecimal[]{BigDecimal.ZERO,BigDecimal.ZERO,BigDecimal.ZERO,BigDecimal.ZERO
                    ,BigDecimal.ZERO,BigDecimal.ZERO,BigDecimal.ZERO} ;
            String totalTrans;
            while((totalTrans = dr.readLine()) != null){
                if (totalTrans.startsWith("Total transferred:")) {
                    String[] st = totalTrans.split(" ");
                    BigDecimal value = BigDecimal.valueOf(Double.valueOf(st[st.length-2]));
                    res[0]=res[0].add(value);
                }
                if (totalTrans.startsWith("Requests per second:")) {
                    String[] st = totalTrans.split(" ");
                    BigDecimal value = BigDecimal.valueOf(Double.valueOf(st[st.length-3]));
                    res[1]=res[1].add(value);
                }
                if (totalTrans.endsWith("[ms] (mean)")) {
                    String[] st = totalTrans.split(" ");
                    BigDecimal value = BigDecimal.valueOf(Double.valueOf(st[st.length-3]));
                    res[2]=res[2].add(value);
                }
                if (totalTrans.startsWith("Time per request:") && !totalTrans.endsWith("[ms] (mean)")) {
                    String[] st = totalTrans.split(" ");
                    BigDecimal value = BigDecimal.valueOf(Double.valueOf(st[st.length-7]));
                    res[3]=res[3].add(value);
                }
                if (totalTrans.startsWith("Transfer rate:")) {
                    String[] st = totalTrans.split(" ");
                    BigDecimal value = BigDecimal.valueOf(Double.valueOf(st[st.length-3]));
                    res[4]=res[4].add(value);
                }
                if(totalTrans.startsWith("Failed requests:")){
                    String[] st = totalTrans.split(" ");
                    BigDecimal value = BigDecimal.valueOf(Double.valueOf(st[st.length-1]));
                    res[5]=res[5].add(value);
                }
                if(totalTrans.startsWith("Write errors:")){
                    String[] st = totalTrans.split(" ");
                    BigDecimal value = BigDecimal.valueOf(Double.valueOf(st[st.length-1]));
                    res[6]=res[6].add(value);
                }
    
            }
            return res;
        }
    }
  • 相关阅读:
    KubeCon 2020 演讲集锦|《阿里巴巴云原生技术与实践 13 讲》开放下载
    突围数字化转型,让特步同比增长24.8%的全渠道中台
    阿里云飞天大数据产品价值解读——《一站式高质量搜索开放搜索》
    高德AR驾车导航解决方案
    我在阿里写代码学会的六件事
    送外卖也要“黑科技”?阿里移动感知技术应用揭秘
    阿里云机器学习怎么玩?这本新手入门指南揭秘了!
    用户自定义类型03 零基础入门学习Delphi33
    用户自定义类型03 零基础入门学习Delphi33
    用户自定义类型01 零基础入门学习Delphi31
  • 原文地址:https://www.cnblogs.com/lbangel/p/3309831.html
Copyright © 2020-2023  润新知