`

(技巧)对user.info的一些配置

    博客分类:
  • Java
 
阅读更多
package com.pccw.mobile.fixipapi.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.pccw.mobile.fixipapi.response.mode.UserInfo;



public class UserConfig {

	private static Logger logger = LoggerFactory.getLogger(UserConfig.class);

	//file operation
	private FileReader fileReader;
	private BufferedReader bufferedReader;
	
	private Map<String, UserInfo> users;
	private static boolean isReady = false;
	
	private static UserConfig instanced = new UserConfig();

	private UserConfig() {
		
		if (!isReady){
			isReady = true;
			String path = SystemConfig.getUser_conf_path();
			initConfiguration(path);
			
		}
	}

	public static UserConfig getInstanced() {
		return instanced;
	}

	public void initConfiguration(String filePath) {
		// first step, read file
		// second step, init configuration
		// third step, close red file
		if (filePath == null) {
			logger.info("file path is null");
			return;
		}

		BufferedReader bf = null;
		Map<String, UserInfo> userMap = new HashMap<String, UserInfo>();
		try {
			bf = readFile(filePath);
			if (bf == null) {
				logger.info("file is empty");
				return;
			}
			String line = null;
			while ((line = bf.readLine()) != null) {
				String[] arr = line.trim().replace(" ", "").split(",");

				if (arr.length == 2) {

					UserInfo userInfo = new UserInfo();
					userInfo.setUsername(arr[0]);
					userInfo.setPassword(arr[1]);

					userMap.put(arr[0].trim(), userInfo);
				}
			}

			if (userMap.size() > 0) {

				users = userMap;
			}

		} catch (FileNotFoundException e) {
			logger.error("action:config;error message:" + e.getMessage());
		} catch (IOException e) {
			logger.error("action:config;error message:" + e.getMessage());
		} finally {
			try {
				closeReadFile();
			} catch (IOException e) {
				logger.error("action:config;error message:" + e.getMessage());
			}
		}

	}

	
	protected BufferedReader readFile(String filePath) throws FileNotFoundException{
		File file = new File(filePath);
		//read file
		fileReader=new FileReader(file);
		bufferedReader = new BufferedReader(fileReader); 
		return bufferedReader;
	}
	
	protected void closeReadFile() throws IOException{
		if (bufferedReader!=null){
			bufferedReader.close();
		}
		if (fileReader!=null){
			fileReader.close();
		}
	}

	
	public Map<String, UserInfo> getUsers() {
		if(users == null){
			return null;
		}
		return users;
	}
	
	public UserInfo getUser(String userName){
		if (userName==null){
			return null;
		}
		if (users!=null){
			return users.get(userName);
		}
		
		return null;
	}
}

 

user.conf:

##http basic authorization
#user & pwd information

pccw,123
csl,888
SunMobile,000

 

分享到:
评论

相关推荐

    intellij idea 设置多module路径.docx

    为了确保`System.getProperty("user.dir")`返回正确的模块路径,我们需要对IDE的运行配置进行特定的设置。 首先,我们要理解`System.getProperty("user.dir")`这个Java系统属性。它返回的是当前工作目录,也就是...

    web.config 自定义配置 demo

    这个压缩包`WebSite1`可能包含了一个实际的示例项目,通过分析和学习该项目,你可以更深入地理解如何在实践中应用这些配置技巧。记住,`web.config`是ASP.NET应用程序的神经系统,正确配置它对于应用的正常运行至关...

    Android.User.Interface.Development.Beginners.Guide.Feb.2011.pdf

    - SDK版本管理及配置。 - 模拟器和真机调试的基本操作。 3. **用户界面基础**: - 布局(Layout)的概念及其类型(如LinearLayout、RelativeLayout等)。 - 常用UI组件(如Button、TextView、EditText等)的使用...

    Linux下Firefox文件配置技巧.pdf

    本资源详细介绍了Linux下Firefox文件配置技巧,涵盖了配置文件夹的路径、管理配置文件、user.js文件的使用、userChrome.css文件的使用等方面的知识点。 一、配置文件夹的路径 在Windows系统中,配置文件夹的路径...

    c_user.RTEMS_C语言用户指南.双语.V20131224

    指南会提供一些用于调试RTEMS应用的技巧,以及如何使用RTEMS提供的工具来分析程序性能,优化系统行为。 这份用户指南是RTEMS项目的重要组成部分,它详细说明了RTEMS的内部工作原理和使用方法。开发者通过学习这份...

    电子-USER.rar

    压缩包中的“USER”文件可能是一个用户手册或者用户指南,包含了关于如何使用这些STM32芯片的详细信息,包括电路设计建议、编程指南、调试技巧以及常见问题解答。通过这份资料,学习者可以逐步了解并实践STM32的开发...

    USER_SBC.zip_SBC_SBC-TLE9262配置函数_TLE9262_汽车_英飞凌SBC

    在汽车电子领域,英飞凌科技(Infineon Technologies)是一家知名的半导体供应商,其产品广泛应用于各种汽车...通过USER_SBC.zip中的资源,开发者可以获取详细的文档和示例代码,进一步学习和实践TLE9262的配置技巧。

    PConline 技巧 去图.pdf

    以上这些命令行技巧不仅适用于日常的网络管理和故障排查,对于想要深入了解Windows系统内部运作机制的技术人员来说也是非常有用的。通过实践这些命令,可以帮助用户更高效地管理和维护自己的计算机系统。

    irq_user.rar_Extras

    标题中的“irq_user.rar_Extras”暗示了这是一个与中断处理相关的Linux驱动程序,可能是用于Acer笔记本电脑的。"Acer WMI Laptop Extras for Linux v2.13.6." 描述表明,这是专为Acer笔记本设计的一个额外功能模块,...

    SPI_OLED_USER.rar

    8. **示例代码解析**:SPI_OLED_USER中的代码可能包含初始化函数,用于配置STM32的SPI接口;显示函数,用于将数据写入OLED;以及可能的图形或文本绘制函数。通过分析这些代码,可以学习如何实际操作SPI接口以及与...

    Learning.the.Yahoo.User.Interface.library

    ### 学习雅虎用户界面库(Yahoo User Interface Library) #### 概述 《学习雅虎用户界面库》是一本详细介绍雅虎用户界面库(YUI)的书籍,由Dan Wellman编写,于2008年3月首次出版。本书主要面向Web开发人员和...

    Veloce User Guide.pdf

    6. **高级功能**:可能包括对复杂场景的支持,如动态重配置、并行执行多个验证任务,以及支持高级验证方法学如UVM(Universal Verification Methodology)。 7. **故障排查与维护**:提供了常见问题的解决方案,...

    USER.rar_1SS_GSM_stm32-_基于GSM的

    标题中的“USER.rar_1SS_GSM_stm32-_基于GSM的”暗示这是一个关于STM32微控制器的项目,其中集成了GSM(Global System for Mobile Communications,全球移动通信系统)模块来实现特定的功能。这个项目可能是通过STM...

    Weblogic 9.1.x 配置秘笈

    WebLogic 9.1.x 是一个企业级的Java EE应用服务器,由Oracle公司提供,用于部署和管理分布式应用程序。在本文中,我们将深入探讨WebLogic...在实际工作中,熟悉这些配置技巧将大大提高WebLogic服务器的管理和运维效率。

    tshell-mbist-user.pdf

    Siemens对本材料不做任何形式的保证,包括但不限于对适销性、特定用途适用性的默示保证,以及对知识产权不侵权的保证。对于因本出版物或其中信息引起或相关的任何直接、间接、附带或惩罚性损害、数据丢失或利润损失...

    Tomcat配置技巧

    以下是一些来自《Tomcat权威指南》的配置技巧。 1. 配置系统管理(Admin Web Application) Tomcat提供了一个内置的管理工具,名为Admin Web Application,它允许管理员管理context、data source、用户和组等。在...

    SAMBA系统简介,smb.conf文件的配置

    ### SAMBA系统简介与smb.conf文件配置详解 #### 一、Samba系统概述 Samba,一个在开源世界中享有盛誉的...通过深入理解Samba的工作原理及`smb.conf`文件的配置技巧,可以极大提升网络资源的利用效率和管理便利性。

    交换机基本配置及VLAN配置实验报告.docx

    - **用户模式(User Mode)**:以提示符“&gt;”显示,用于基本信息查询,不具备修改配置的权限。 - **特权模式(Privileged Mode)**:以提示符“#”显示,允许查看更详细的配置信息和执行诊断命令。 - **全局配置...

Global site tag (gtag.js) - Google Analytics