教你一招,使用java读取解析txt文本数据,管理简单的数据

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的一下本人写出我自己做的一个读取文本文件的例子,文件中存储的是我的个人网站 www.yzcopen.com 导航栏目因为懒得使用数据库了,就用text文本代替了做了一个简单的数据库一下图片是我存储的格式:然后通过jav...

在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的
一下本人写出我自己做的一个读取文本文件的例子,
文件中存储的是我的个人网站 www.yzcopen.com 导航栏目
因为懒得使用数据库了,就用text文本代替了做了一个简单的数据库

一下图片是我存储的格式:

QQ_20190328141716

然后通过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存放目录如下图:

QQ_20190328142114

好了核心代码都贴出来了,

我就是通过这么一个文本来管理我的导航栏目的,当然最好还是用数据库管理,text可以存储一些简单的数据还是挺方便的
相关文章
|
28天前
|
存储 Java 计算机视觉
Java二维数组的使用技巧与实例解析
本文详细介绍了Java中二维数组的使用方法
44 15
|
25天前
|
存储 搜索推荐 大数据
数据大爆炸:解析大数据的起源及其对未来的启示
数据大爆炸:解析大数据的起源及其对未来的启示
89 15
数据大爆炸:解析大数据的起源及其对未来的启示
|
6天前
|
数据采集 前端开发 API
SurfGen爬虫:解析HTML与提取关键数据
SurfGen爬虫:解析HTML与提取关键数据
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
深度解析Recraft V3:突破文本渲染限制,文生图黑马是怎样炼成的?
Recraft V3模型在文本生成图像(Text-to-Image)领域取得重大突破,通过创新的&quot;Bridging Text Spotting&quot;方法,解决了传统方法中误差累积和性能不佳的问题。该模型采用独立训练的检测器和识别器,并引入Bridge和Adapter机制,确保高质量图像生成。Recraft V3在多个数据集上表现优异,如Total-Text准确率达83.3%,ICDAR 2015达89.5%。其应用前景广泛,涵盖广告设计、教育和娱乐等领域,为文生图技术的实际应用提供了新可能。
87 27
|
11天前
|
数据采集 监控 搜索推荐
深度解析淘宝商品详情API接口:解锁电商数据新维度,驱动业务增长
淘宝商品详情API接口,是淘宝开放平台为第三方开发者提供的一套用于获取淘宝、天猫等电商平台商品详细信息的应用程序接口。该接口涵盖了商品的基本信息(如标题、价格、图片)、属性参数、库存状况、销量评价、物流信息等,是电商企业实现商品管理、市场分析、营销策略制定等功能的得力助手。
|
6天前
|
XML JSON Java
Java中Log级别和解析
日志级别定义了日志信息的重要程度,从低到高依次为:TRACE(详细调试)、DEBUG(开发调试)、INFO(一般信息)、WARN(潜在问题)、ERROR(错误信息)和FATAL(严重错误)。开发人员可根据需要设置不同的日志级别,以控制日志输出量,避免影响性能或干扰问题排查。日志框架如Log4j 2由Logger、Appender和Layout组成,通过配置文件指定日志级别、输出目标和格式。
|
28天前
|
JSON 缓存 API
解析电商商品详情API接口系列,json数据示例参考
电商商品详情API接口是电商平台的重要组成部分,提供了商品的详细信息,支持用户进行商品浏览和购买决策。通过合理的API设计和优化,可以提升系统性能和用户体验。希望本文的解析和示例能够为开发者提供参考,帮助构建高效、可靠的电商系统。
39 12
|
21天前
|
搜索推荐 API 开发者
深度解析:利用商品详情 API 接口实现数据获取与应用
在电商蓬勃发展的今天,数据成为驱动业务增长的核心。商品详情API接口作为连接海量商品数据的桥梁,帮助运营者、商家和开发者获取精准的商品信息(如价格、描述、图片、评价等),优化策略、提升用户体验。通过理解API概念、工作原理及不同平台特点,掌握获取权限、构建请求、处理响应和错误的方法,可以将数据应用于商品展示、数据分析、竞品分析和个性化推荐等场景,助力电商创新与发展。未来,随着技术进步,API接口将与人工智能、大数据深度融合,带来更多变革。
62 3
|
28天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
58 6
|
28天前
|
存储 算法 搜索推荐
【潜意识Java】期末考试可能考的高质量大题及答案解析
Java 期末考试大题整理:设计一个学生信息管理系统,涵盖面向对象编程、集合类、文件操作、异常处理和多线程等知识点。系统功能包括添加、查询、删除、显示所有学生信息、按成绩排序及文件存储。通过本题,考生可以巩固 Java 基础知识并掌握综合应用技能。代码解析详细,适合复习备考。
21 4

热门文章

最新文章

推荐镜像

更多