使用java读取解析txt文本数据,管理简单的数据
在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的
一下本人写出我自己做的一个读取文本文件的例子,
文件中存储的是我的个人网站 www.yzcopen.com 导航栏目
因为懒得使用数据库了,就用text文本代替了做了一个简单的数据库
一下图片是我存储的格式:
然后通过java代码在程序加载的时候读取文本内容存储到缓存中
详细代码如下:
先创建一个缓存类:
package com.yzcopen.cache;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class initCache {
private static Map<String,Object> cacheMap = new ConcurrentHashMap<String,Object>();
//单实例构造方法
private initCache() {
}
/**
* 增加缓存
* @param key
* @param value
*/
public static void setValue(String key,Object value){
cacheMap.put(key, value);
}
//清除指定的缓存
public synchronized static void clearOnly(String key) {
cacheMap.remove(key);
}
//清除所有缓存
public synchronized static void clearAll() {
cacheMap.clear();
}
//修改缓存数据
public synchronized static void editeCache(String key,Object value) {
clearOnly(key);
cacheMap.put(key, value);
}
/**
* 以下都是查询
* @param key
* @return
*/
@SuppressWarnings("unchecked")
public static Map<String,String> getMapValue(String key){
Object obj = cacheMap.get(key);
if(obj!=null){
return (Map<String, String>) obj;
}
return null;
}
public static Object getObjValue(String key){
Object obj = cacheMap.get(key);
return obj;
}
public static Integer getIntValue(String key){
Object obj = cacheMap.get(key);
if(obj!=null){
return (Integer)obj;
}
return 0;
}
public static String getStringValue(String key){
Object obj = cacheMap.get(key);
if(obj!=null){
return (String)obj;
}
return "";
}
}
然后读取代码函数:
public static void initCache(){
InputStream in = YzcPattern.class.getResourceAsStream("/resources/menu.txt"); //文本目录 YzcPattern 可以换成任意类
InputStreamReader reader = null;
BufferedReader br = null;
try {
reader = new InputStreamReader(
in,"gbk");
br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
String line = "";
line = br.readLine();
List<Map<String,Object>> menup = new ArrayList<Map<String,Object>>();
List<Map<String,Object>> menuc = new ArrayList<Map<String,Object>>();
while (line != null) {
String[] lines = line.split("\\|");
if(lines[0].equals("p")){
Map<String,Object> map = new HashMap<String,Object>();
map.put("bh", lines[1]);
map.put("name", lines[2]);
map.put("img", lines[3]);
map.put("listmap", new ArrayList<Map<String,Object>>());
menup.add(map);
}else if(lines[0].equals("c")){
Map<String,Object> map = new HashMap<String,Object>();
map.put("pbh", lines[1]);
map.put("bh", lines[2]);
map.put("name", lines[3]);
map.put("dis", lines[4]);
map.put("url", lines[5]);
map.put("img", lines[6]);
menuc.add(map);
}
line = br.readLine();
}
for(int i=0;i<menup.size();i++){
Map<String,Object> ob = menup.get(i);
String bm = ob.get("bh")+"";
for(int b = 0;b<menuc.size();b++){
Map<String,Object> obc = menuc.get(b);
String pbm = obc.get("pbh")+"";
if(bm.equals(pbm)){
((ArrayList)ob.get("listmap")).add(obc);
}
}
}
initCache.setValue("p", menup);
initCache.setValue("c", menuc);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(reader!=null){
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
menu.txt存放目录如下图:
好了核心代码都贴出来了,
我就是通过这么一个文本来管理我的导航栏目的,当然最好还是用数据库管理,text可以存储一些简单的数据还是挺方便的
www.yzcopen.com 一个在线工具网站,导航就是用这样的方式做的。
使用java读取解析txt文本数据,管理简单的数据的更多相关文章
- Java HashSet对txt文本内容去重(统计小说用过的字或字数)
Java HashSet对txt文本内容去重(统计小说用过的字或字数) 基本思路: 1.字节流读需要去重的txt文本.(展示demo为当前workspace下名为utf-8.txt的文本) 2.对读取 ...
- json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例
json-lib-2.4-jdk15.jar所需全部JAR包.rar java jsoup解析开彩网api接口json数据实例 json-lib-2.4-jdk15.jar所需全部JAR包.rar ...
- java读取解析application.yml
java读取解析application.yml 不用依赖spring容器,可单独使用. bug已修改... 第一步.首先要2个jar <!-- properties和yaml格式化 --> ...
- Java读取Excel并与SqlServer库中的数据比较
先说说需求.在SQL server数据库中的表里存在一些数据,现在整理的Excel文档中也存在一些数据,现在需要通过根据比较某个字段值(唯一)来判断出,在库中有但excel中没有的数据. 大概的思路就 ...
- java读取url中json文件中的json数据
有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...
- JAVA 解析TXT文本
package file; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...
- java读取本地txt文件并插入数据库
package com.cniia.ny.web.control.configManage; import java.io.BufferedReader; import java.io.File; i ...
- 解析txt文本,dom4j工具输出为xml文档
有如下一个ttl.txt文本文档,每一行用空格隔开的三段分别代表主谓宾, 要将它们输出为xml格式文档 工具:dom4j,jar包导入MyEclipse的Java Project工程 代码如下: pa ...
- ajax读取txt文本时乱码的解决方案
前言:第一次学习使用 ajax 就是用来读取文本 先给出现乱码的代码<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/ ...
随机推荐
- 吴裕雄--天生自然 JAVASCRIPT开发学习:while 循环
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- mysql 如何删除数据库中所有的表
SELECT concat('DROP TABLE IF EXISTS ', table_name, ';')FROM information_schema.tablesWHERE table_sch ...
- @SpringBootApplication-exclude和扫描并装配其他包下的bean(@AliasFor)
1.exclude 不装配指定bean @SpringBootApplication(exclude={com.ebc.User.class}) 2.scanBasePackages package ...
- 201771010123汪慧和《面向对象程序设计Java》第十八周实验总结
一.总复习纲要 1. Java语言特点与开发环境配置(第1章.第2章) 2. Java基本程序结构(第3章) 3. Java面向对象程序结构(第4章.第5章.第6章) 4. 类.类间关系.类图 5. ...
- Json字符串转Java对象和List集合
对象POJO和JSON互转 public class JsonUtil { /** * JSON 转 POJO */ public static <T> T getObject(Strin ...
- salt如何查看文档帮助
1.查看普通模块和函数使用方法 salt 'minion' sys.doc module_name salt ‘minion' sys.doc module_name.function_name ...
- 使用那各VUE的打印功能(print.js)出现多打印一个空白页的问题
最近这段时间,用VUE写东西,有个打印功能. 百度了一下,铺天盖地的VUE打印的两种实现方法. 很感激这些千篇一律的帖子,虽然不知道他们是否真的用过,还是只是复制粘贴. 至少这些帖子告诉我,是有两个可 ...
- shell脚本案例
1.MySQL数据库备份脚本,下面的脚本是Mysql全量备份+异地备份 一般Mysql数据库备份会采用在MYSQL从库上执行全量备份+增量备份方式.在从库备份避免Mysql主库备份的时候锁表造成业务影 ...
- UML-对象设计要迭代和进化式
1.在<如何面向对象设计>和<如何进行对象设计?>中,对如何迭代和进化式的设计对象做些总结: 1).轻量+简短 2).快速进入编码+测试 3).不要试图在UML中细化所有事物 ...
- javaweb03 javaservlet基础一
1.使用JavaEE版的eclipse开发动态的WEB工程(JavaWEB 项目)1).把开发选项切换到JavaEE2).可以在window -> Show View 中找到Package Ex ...