`

StaticData系统静态数据

 
阅读更多

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;

/**
 * 读取和修改配置好的静态数据
 * 〈功能详细描述〉
 * @author    cKF42443
 * @version   V1.00 2012-3-5
 * @since     TopEng CSP V6.0R002 CHF D101
 */
public class StaticData
{
    /** 记录日志*/
    public static final Logger logger = Logger.getLogger(StaticData.class);
   
    private static String ips;
   
    private static final String IPSFILE_NAME = "ips.txt";
   
    private static final String CARFILE_NAME = "carcity.txt";
   
    private static final String CARTYPE_NAME = "cartype.txt";
   
    private static final String LOCTRANSTB_NAME = "loctranstable.txt";
   
    private static final char FILE_SEP = System.getProperty("file.separator")
            .charAt(0);;
           
    private static Map<String, String> carMap = new HashMap<String, String>();
   
    private static Map<String, String> carTypeMap = new HashMap<String, String>();
   
    private static Map<String, String> loctranstbMap = new HashMap<String, String>();
   
    private static String[] ipsArr;
    /**
     * 取得配置好的可以认证的IP
     */
    static
    {
       
        String url = Thread.currentThread()
                .getContextClassLoader()
                .getResource("")
                .getFile();
        File file = new File(url + FILE_SEP + IPSFILE_NAME);
        FileReader fr = null;
        BufferedReader reader = null;
        try
        {
            fr = new FileReader(file);
            reader = new BufferedReader(fr);
            ips = reader.readLine();
            ipsArr = ips.split(";");
        }
        catch (FileNotFoundException e)
        {
            logger.error("取得IP配置出错", e);
        }
        catch (IOException e)
        {
            logger.error("取得IP配置出错", e);
        }
        finally
        {
            try
            {
                fr.close();
            }
            catch (IOException e)
            {
                logger.error("取得IP配置出错", e);
            }
            try
            {
                reader.close();
            }
            catch (IOException e)
            {
                logger.error("取得IP配置出错", e);
            }
    }
    }
   
    /**
     * 取得配置好的车牌和分区的对应关系
     */
    static
    {
        String carurl = Thread.currentThread()
                .getContextClassLoader()
                .getResource("")
                .getFile();
        File carfile = null;
        FileReader carfr = null;
        BufferedReader reader = null;
        try
        {
            carfile = new File(carurl + FILE_SEP + CARFILE_NAME);
            carfr = new FileReader(carfile);
            reader = new BufferedReader(carfr);
            String line = null;
            while ((line = reader.readLine()) != null)
            {
                String[] strs = line.split(" ");
                carMap.put(strs[0].trim(), strs[1].trim());
            }
        }
        catch (FileNotFoundException e)
        {
            logger.error("取得车牌号对应分区设置配置出错", e);
        }
        catch (IOException e)
        {
            logger.error("取得车牌号对应分区设置配置出错", e);
        }
        finally
        {
                try
                {
                    carfr.close();
                }
                catch (IOException e)
                {
                    logger.error("取得车牌号对应分区设置配置出错", e);
                }
                try
                {
                    reader.close();
                }
                catch (IOException e)
                {
                    logger.error("取得车牌号对应分区设置配置出错", e);
                }
        }
    }
    /**
     * 取得车辆类型对应分区设置配置
     */
    static
    {
        String carTypeURL = Thread.currentThread()
                .getContextClassLoader()
                .getResource("")
                .getFile();
        File carfile = null;
        InputStreamReader isr = null;
        BufferedReader reader = null;
        try
        {
            carfile = new File(carTypeURL + FILE_SEP + CARTYPE_NAME);
            isr = new InputStreamReader(new FileInputStream(carfile),"UTF-8");
            reader = new BufferedReader(isr);
            String line = null;
            while ((line = reader.readLine()) != null)
            {
                String[] strs = line.split("~~~");
                carTypeMap.put(strs[0].trim(), strs[1].trim());
            }
        }
        catch (FileNotFoundException e)
        {
            logger.error("取得车辆类型对应分区设置配置出错FileNotFoundException", e);
        }
        catch (IOException e)
        {
            logger.error("取得车辆类型对应分区设置配置出错IOException", e);
        }
        finally
        {
                try
                {
                    isr.close();
                }
                catch (IOException e)
                {
                    logger.error("取得车辆类型对应分区设置配置出错IOException isr", e);
                }
                try
                {
                    reader.close();
                }
                catch (IOException e)
                {
                    logger.error("取得车辆类型对应分区设置配置出错IOException reader", e);
                }
        }
    }
    /**
     * 取得现场违章对应表设置配置
     */
    static
    {
        String locurl = Thread.currentThread()
                .getContextClassLoader()
                .getResource("")
                .getFile();
        File carfile = null;
        FileReader carfr = null;
        BufferedReader reader = null;
        try
        {
            carfile = new File(locurl + FILE_SEP + LOCTRANSTB_NAME);
            carfr = new FileReader(carfile);
            reader = new BufferedReader(carfr);
            String line = null;
            while ((line = reader.readLine()) != null)
            {
                String[] strs = line.split("~~~");
                loctranstbMap.put(strs[0].trim(), strs[1].trim());
            }
        }
        catch (FileNotFoundException e)
        {
            logger.error("取得现场违章对应表设置配置出错 FileNotFoundException", e);
        }
        catch (IOException e)
        {
            logger.error("取得现场违章对应表设置配置出错 IOException ", e);
        }
        finally
        {
                try
                {
                    carfr.close();
                }
                catch (IOException e)
                {
                    logger.error("取得现场违章对应表设置配置出错", e);
                }
                try
                {
                    reader.close();
                }
                catch (IOException e)
                {
                    logger.error("取得现场违章对应表设置配置出错", e);
                }
        }
    }
    /**
     *
     * 修改认证IP
     * @param cips 需改后的IP列表
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static void channge(String cips)
    {
        String url = Thread.currentThread()
                .getContextClassLoader()
                .getResource("")
                .getFile();
        File file = new File(url + FILE_SEP + IPSFILE_NAME);
        FileWriter fw = null;
        BufferedWriter bw = null;
        try
        {
            fw = new FileWriter(file);
            bw = new BufferedWriter(fw);
            bw.write(cips);
            bw.flush();
            ips = cips;
        }
        catch (IOException e)
        {
            logger.error("修改IP出错", e);
        }
        finally
        {
            try
            {
                bw.close();
            }
            catch (IOException e)
            {
                logger.error("修改IP出错", e);
            }
            try
            {
                fw.close();
            }
            catch (IOException e)
            {
                logger.error("修改IP出错", e);
            }
    }
    }
   
    /**
     *
     * 取得认证IP
     * @return String
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static String getIps()
    {
        return ips;
    }
   
    /**
     *
     * 取得认证IP
     * @return String
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static String[] getIpArr()
    {
        return ipsArr;
    }
   
   
    /**
     *
     * 取得车牌号对应的分区
     * @return Map<String, String>
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static Map<String, String> getCarCity()
    {
        return carMap;
    }
    /**
     *
     * 取得车辆类型
     * @return Map<String, String>
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static Map<String, String> getCarType()
    {
        return carTypeMap;
    }
    /**
     *
     * 取得现场违章表
     * @return Map<String, String>
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static Map<String, String> getLocTransTbMap()
    {
        return loctranstbMap;
    }
    /**
     *
     * 取得车牌号对应的分区
     * @param car 车牌号的第二位
     * @return String
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static String setPartition(String car)
    {
        String partition = getCarCity().get(car);
        return partition != null ? partition : "PDEFAULT";
    }
    /**
     *
     * 取得现场违章对应表
     * @param idcardno 身份证号前四位
     * @return String
     * [违例说明:异常的注释必须说明该异常的含义及什么条件下抛出该
     */
    public static String setLocTransTb(String idcardno)
    {
        String tb = getLocTransTbMap().get(idcardno);
        return tb != null ? tb : getLocTransTbMap().get("default");
    }
}

分享到:
评论

相关推荐

    静态数据脱敏系统解决方案.pdf

    静态数据脱敏(Static data masking)是指在数据全生命周期中,对敏感信息通过规则进行变形,以达到对敏感数据进行隐私保护的目的。 二、业务场景与价值 静态数据脱敏系统解决方案可应用于生产库到测试库的数据...

    仓库管理系统网站静态页面

    数据模型是系统设计的基础,SupplierManagement-DataModel.doc可能包含数据库的设计蓝图,如实体关系图(ER图),定义了各个实体(如供应商、产品、订单等)之间的关系,以及它们的属性和操作。数据模型的清晰性直接...

    QT moc definition of dllimport static data member not allow.pdf

    标题"QT moc definition of dllimport static data member not allow"指出的问题核心在于,试图在一个动态链接库(DLL)中使用`dllimport`和`static`修饰的静态数据成员。在Windows平台上,`dllimport`用于声明一个...

    Kafka-Spark-stream-with-static-data-using-join:使用join的Kafka Spark流与静态数据

    总的来说,利用Java开发的Kafka Spark流处理系统可以有效地处理实时数据,并通过join操作与静态数据相结合,实现更丰富的数据分析。在实际项目中,这种结合可以应用于诸如实时监控、异常检测、复杂事件处理等多种...

    C#静态调用webservice

    本篇文章将深入探讨如何在C#中静态调用Web Service,以便通过Web Service来访问数据库。Web Service是一种基于互联网的软件服务,允许不同系统间的应用程序进行交互。在描述的场景中,我们构建了一个IIS(Internet ...

    数据流的分析

    循环静态数据流(Cyclo-static Dataflow)是在SDF基础上进一步发展的模型,它允许过程在多个时钟周期内完成不同的操作,但这些操作仍然遵循一定的周期性规律。通过这种方式,可以在保持一定程度同步的同时引入更多的...

    静态时序分析(Static Timing Analysis)基础及应用 ◎陈麒旭

    《静态时序分析(Static Timing Analysis)基础及应用》由陈麒旭编写的教程,主要探讨了在数字集成电路(IC)后端设计中至关重要的静态时序分析技术。随着半导体工艺进入深次微米时代,系统级芯片(SoC)设计的...

    狂神说springboot员工管理系统静态资源.zip静态资源_.zip

    《狂神说SpringBoot员工管理系统静态资源》是一个与SpringBoot框架相关的学习资源包,主要包含了一些Web应用中的静态页面和资源。在这个系统中,SpringBoot作为核心开发框架,被用来构建一个简洁高效的员工管理平台...

    Springboot静态资源

    - 数据库连接通常通过JPA或MyBatis实现,使用Spring Data JPA简化数据访问操作。 5. **狂神的教程特点**: - "狂神"可能是一位知名的IT博主或讲师,他的教程通常深入浅出,结合实战项目讲解理论知识,帮助学习者...

    B7_静态与动态面板数据.rar

    静态面板数据(Static Panel Data)是指在固定时间段内,对于多个个体(或单位)的一次性观测值集合。这种数据结构允许我们考虑个体间的异质性和时间不变的特性。在Stata中,我们可以使用`xtreg`命令进行线性回归...

    静态单链表

    在编程实践中,静态链表常用于解决特定场景的问题,比如在资源有限的嵌入式系统或者对内存管理有特殊需求的场合。静态链表的实现可以通过结构体数组来完成,每个结构体包含数据和指向下一个元素的索引。在C语言中,...

    静态内存分配的队列模块

    本篇文章将详细讲解C++中的静态内存分配以及如何实现一个静态内存分配的队列模块,尤其关注其在嵌入式系统软件中的应用。 首先,让我们了解静态内存分配。静态内存分配通常指的是在编译时就已经确定了内存的大小和...

    静态时序分析(Static Timing Analysis)基础及应用.pdf

    - **Design Data**: 设计数据通常包含了电路的具体结构和布局信息,这里不做过多解释。 - **Library Data**: 时序模型(Timing Model)包含在标准单元库(Cell Library)中,这些模型以各种形式呈现,例如组合时序弧...

    Actel FPGA静态时序分析模型.

    Actel FPGA中的静态时序分析(Static Timing Analysis,简称STA)是设计流程中的关键步骤,用于确保电路在实际运行时满足时序要求,保证系统的稳定性和性能。本文档针对Actel FPGA平台,使用Libero软件进行详细解析...

    dpdk静态库编译lib-dpdk.lib

    DPDK (Data Plane Development Kit) 是一套开源的高性能网络处理框架,主要针对网络包处理进行优化,广泛应用于数据中心、网络设备以及网络安全等领域。在C++编程中,有时我们需要将DPDK库集成到项目中,此时就需要...

    FPGA静态时序分析.doc

    静态时序分析(Static Timing Analysis,STA)是一种用于验证设计时序特性的方法,它可以检查电路是否满足所有的时序约束。STA工具能够自动计算出整个设计的时序路径,并检测是否存在任何时序违规,如建立时间或保持...

    行业-电子政务-具有由数据控制的电源供应的静态随机存取存储器.zip

    标题提到的“具有由数据控制的电源供应的静态随机存取存储器”(Data-Controlled Power Supply for Static Random Access Memory,简称DPS SRAM)是一种针对特定应用优化的内存技术,旨在提供更高级别的可靠性和能效...

    TimeQuest静态时序分析总结

    在数字集成电路设计领域,静态时序分析(Static Timing Analysis,STA)是验证设计是否满足时序约束的关键步骤。TimeQuest是Aldec公司的一款强大的静态时序分析工具,它能够帮助工程师们精确地评估电路的时序性能,...

    C#生成静态页面

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发.NET框架的应用程序时。静态页面生成是Web开发中的一种技术,它将动态内容转化为预先...通过掌握这些知识点,开发者可以构建出高效且可扩展的静态页面生成系统。

Global site tag (gtag.js) - Google Analytics