读取配置文件获取所需信息
来源:互联网 发布:视频编辑软件 知乎 编辑:程序博客网 时间:2024/04/29 01:47
连续加班,总结一下近几天来的工作任务。在比较小的项目或者访问量较小时,数据库任务不妨改为读取配置文件较为方便些。初次接触读配置文件进行业务处理,简单的说下步骤及代码。首先第一步就是先读取配置文件。如果存放本地的话,还需在测试一下吧,我记得应该是可以的。
public static Properties readProxyUsers() throws Exception { Properties pro = new Properties(); InputStream iner = null; try { File fileDiroctory = new File("/dtp/app/tomcat/proxyusers"); // 服务器地址 if (!fileDiroctory.exists()) { fileDiroctory.mkdirs(); } File proxyUserFile = new File(fileDiroctory, "proxyusers.properties"); if (!proxyUserFile.exists()) { proxyUserFile.createNewFile(); } iner = FileUtils.openInputStream(proxyUserFile); pro.load(iner); } finally{ if (iner != null) { iner.close(); } } return pro; }
读取到文件以后,要看文件的类型,然后进行字段分割及遍历取到用户信息。先分析一下我的配置文件,然后再读分割信息就很一目了然了。
#Fri Nov 03 14:09:09 CST 2017150875473959710.id=150875473959710150958612871810.clientIp=192.168.28.111150875473959710.functions=FTP/HTTP150958612871810.key=/dtp/app/tomcat/proxyusers/Top123.topkey150958612871810.id=150958612871810150958612871810.onlineTime=0150875473959710.clientIp=192.168.28.111150875473959710.key=/dtp/app/tomcat/proxyusers/Topwalk313.topkey150875473959710.isOnline=\u662F150875473959710.isUpline=\u662F150958612871810.beginTime=127888150958612871810.password=Topwlak123150958612871810.name=Top123150875473959710.password=1150875473959710.beginTime=1509689349795150958612871810.functions=150875473959710.name=Topwalk313150958612871810.isOnline=\u5426150875473959710.onlineTime=51323686416920
前面一串数字是用户的id
private static String switchStr(String id,Integer type){ StringBuffer key = new StringBuffer(); key.append(id).append("."); switch (type) { case 0: key.append("id"); break; case 1: key.append("name"); break; case 2: key.append("password"); break; case 3: key.append("key"); break; case 4: key.append("functions"); break; case 5: key.append("isOnline"); break; case 6: key.append("beginTime"); break; case 7: key.append("onlineTime"); break; case 8: key.append("clientIp"); break; default: key.append("def"); break; } return key.toString(); }
分割完毕,然后是查询用户列表信息,可到前台展示
/** * 查询业务用户列表 */ private static List<ProxyUser> getUsers() throws Exception { Properties pro = readProxyUsers(); List<String> ids = new ArrayList<String>(); List<ProxyUser> list = new ArrayList<ProxyUser>(); if (pro != null) { for (Object str : pro.keySet()) { String id = str.toString().split("\\.")[0]; if (ids.contains(id)) { continue; } else { ids.add(id); } } for (String id : ids) { ProxyUser pu = new ProxyUser(); pu.setId(id); pu.setName(pro.getProperty(switchStr(id, 1))); pu.setPassword(pro.getProperty(switchStr(id, 2))); pu.setKey(pro.getProperty(switchStr(id, 3))); pu.setFunctions(pro.getProperty(switchStr(id, 4))); pu.setOnline(pro.getProperty(switchStr(id, 5))); pu.setBeginTime((pro.getProperty(switchStr(id, 6)))); pu.setOnlineTime(getOnlineTime(pro.getProperty(switchStr(id, 7)))); pu.setClientIp(pro.getProperty(switchStr(id, 8))); list.add(pu); } } return list; }
这样查询就可以了,说一个业务来说明对配置文件进行修改或新增吧。
想要判断客户端的状态,每次都要给值加一,服务端写一个定时器,每隔3秒读取,当比较字符串没有发生改变时,就判断客户端已下线。
下面是设置每次加1的代码。
public void setLongTiem(String name) throws Exception { List<ProxyUser> list = getUsers(); OutputStream out = null; // 读取pro Properties pro = readProxyUsers(); for (ProxyUser pu : list) { if (name.equals(pu.getName())) { Long l = Long.valueOf(pu.getLongtime()); pro.setProperty(switchStr(pu.getId(), 9), (l + 1) + ""); out = new FileOutputStream("/dtp/app/tomcat/proxyusers/proxyusers.properties"); pro.store(out, null); out.flush(); } } }
这是循环读取的,如果只单纯读取配置文件的一个字段,那就很简单了。
public static String getPasswdExpiryDate() { String object = ""; InputStream stream = null; try { File file = new File("/dtp/conf/app/liveUserSize.properties"); // 本地测试路径 Properties pro = new Properties(); if (file.exists()) { stream = new FileInputStream(file); pro.load(stream); object = pro.getProperty("passwdExpiryDate"); System.out.println(object); } } catch (Exception e) { System.out.println("读取/dtp/conf/app/liveUserSize.properties文件异常!" + e); } finally { if (stream != null) { try { stream.close(); } catch (Exception e2) { System.out.println("关闭流异常!" + e2); } } } return object; }
第一个路径是配置文件的路径
第二个路径是要获取配置文件的字段。
就写这么多吧。下班了嘿嘿黑
阅读全文
0 0
- 读取配置文件获取所需信息
- 从配置文件读取信息
- 读取配置文件信息
- 读取配置文件中的信息
- 读取配置文件信息
- php读取配置文件信息
- servlet读取配置文件信息
- 读取.properties配置文件信息
- 读取配置文件的信息
- C#读取配置文件信息
- 读取配置文件信息
- 读取properties配置文件信息
- 读取配置文件信息
- java 读取配置文件信息
- 用java获取网页所需信息
- 连接zookeeper获取所需信息
- c++/cli 读取配置文件app.config所需的设置
- 读取配置文件,获取值
- ubuntu编译安装mysql5.7
- 搜索系统16:从HttpClient学习连接池
- 菜鸟级别的Shiro配置、使用案例(一)
- redis事务及命令
- JWT 构建Rails API 授权登录
- 读取配置文件获取所需信息
- PDF文字下划线使用什么软件可以快速添加?
- Reactjs+BootStrap开发自制编程语言Monkey的编译器:词法解析1
- python模块学习(threading模块中的Thread类)
- Linux网络相关
- (转)大并发量socket 通信框架MINA介绍
- jspcheckbox 选中事件判断
- Swift UITextView 限制输入字符数
- 一张图了解Redis基础