概述

经常会用到通过配置文件,去配置一些参数,java里面本来是有配置文件的,但是导入很麻烦的,自从我用了json之后,从此一切配置文件都见鬼去吧.

1.下载gson解析json文件的jar包

    首先我们要导入一个解析json文件的jar包,下载连接如下所示:

https://mvnrepository.com/artifact/com.google.code.gson/gson

2.导入gson包到当前工程

eclipse 下面鼠标选中 JRE System Libraries -> Build Path -> Configure Build Path找到 Libraries 选项卡,Add External JARs ,找到刚才下载的gson jar包 选择,导入到当前工程。

3.读取json文件转换为字符串

如下所示代码,方法入口参数为文件名,记得要带上路径

public String readToString(String fileName) {
String encoding = "UTF-8";
File file = new File(fileName);
Long filelength = file.length();
byte[] filecontent = new byte[filelength.intValue()];
try {
FileInputStream in = new FileInputStream(file);
in.read(filecontent);
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
return new String(filecontent, encoding);
} catch (UnsupportedEncodingException e) {
System.err.println("The OS does not support " + encoding);
e.printStackTrace();
return null;
}
}

4.解析字符串为java类

解析为java类的过程是json序列化的过程,如下所示:

public class ImportCfgFile{
public static inicfg ini = new inicfg();
public ImportCfgFile(){
Gson gson = new Gson();
String str = ini.readToString("config.json");
try {
//str = gson.toJson(ini);
//System.out.println("json 格式:"+str);
ini = gson.fromJson(str.trim(), inicfg.class);
//System.out.println("配置文件:\r\n"+str);
} catch (Exception e) {
System.out.println("配置文件读取失败,异常退出");
return ;
} }
}

其中inicfg是一个用户定义的要和json文件对应的类,写配置文件最好先按照inicfg类的方式生成类似的json字符串,使用str = gson.toJson(ini) ,记得要对ini初始化才可以,这样我们拷贝打印出来的消息到config.json文件里面,就不会抛出解析失败的异常了

Java 使用json 做配置文件的更多相关文章

  1. Java为何用xml做配置文件?

    在Java世界里xml配置文件几乎是首选,xml有什么好的特性呢? xml能存储小量数据,仅仅是存储数据. xml可以跨平台,主流各种平台都对xml有支持, 真正的跨平台, xml读取速度快. xml ...

  2. 2018.4.11 Java为何用xml做配置文件? 理由如下

    在Java世界里xml配置文件几乎是首选,xml有什么好的特性呢? 第一:xml能存储小量数据,仅仅是存储数据. 第二:xml可以跨平台,主流各种平台都对xml有支持, 真正的跨平台, 第三:xml读 ...

  3. 二进制配置文件为什么比json等配置文件效率高

    二进制配置文件为什么比json等配置文件高效 项目中用spine做动画,spine可以导出json和二进制的动画配置文件,蛋疼的是spine官方竟然没有提供c的二进制配置解析代码,更没有提供它二进制文 ...

  4. Java 的 JSON 开源类库选择比较(zz)

    在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April  ...

  5. java中json包的使用以及字符串,map,list,自定义对象之间的相互转换

    做一个map和字符串的转换,需要导入这些jar包,这是最基本的一些jar包. 经过多方尝试得出结论入下: 首先导入基本包:json-lib-2.2.3-jdk15.jar 如果没有这个jar包,程序是 ...

  6. JSON以及Java转换JSON的方法(前后端常用处理方法)

    )); map.put("arr", new String[] { "a", "b" }); map.put("func" ...

  7. Java JWT: JSON Web Token

    Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand libr ...

  8. java使用Map做缓存你真的用对了吗?弱引用WeakHashMap了解一下

    目录 关于缓存我们应该考虑什么?-intsmaze WeakHashMap弱引用-intsmaze 线程安全问题-intsmaze Collections-intsmaze ThreadLocal-i ...

  9. java解析Json字符串之懒人大法

    面对Java解析Json字符串的需求,有很多开源工具供我们选择,如google的Gson.阿里巴巴的fastJson.在网上能找到大量的文章讲解这些工具的使用方法.我也是参考这些文章封装了自己的Jso ...

随机推荐

  1. hibench学习

    hibench包含几个hadoop的负载 micro benchmarksSort:使用hadoop randomtextwriter生成数据,并对数据进行排序. Wordcount:统计输入数据中每 ...

  2. C关系运算结果及逻辑运算结果保存

    http://service.exmail.qq.com/

  3. linux 单网卡来绑定多IP实现多网段访问以及多网卡绑定单IP实现负载均衡

    ifconfig eth0 hw AA:BB:CC:DD:EE:FF

  4. React-Todos

    最近学完React的最基本概念,闲下来的时候就自己写了一个Todo-List的小应用.这里做个简略的说明,给想好好学React的新手看. React-Todo 学习前提 这里我用了webpackb做了 ...

  5. leetcode110

    /** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNo ...

  6. IOS上架(九) AppStore编译生成ipa文件并上传

    IOS上架上传ipa文件 AppStore https://itunesconnect.apple.com delphi project>option里的CFBundleVersion 上传的版 ...

  7. maven exclusions version

    <dependency> <groupId>cn.wonhigh</groupId> <artifactId>base-framework-web< ...

  8. shell编程变量赋值

    [shell编程变量赋值] 1.等号两边均不能有空格存在.例, a="hello world"   2.变量和其它文字以{}或空格格开,否则会混淆.例, 有时候变量名可能会和其它文 ...

  9. 初识STM32

    1.什么是STM32 A.ST是意法半导体,一个公司名,即SOC厂商,生产芯片的厂商.ARM公司是IP厂商,即只生产内核的厂商. B.M-Microelectronics的缩写,表示微控制器,大家注意 ...

  10. android4.2 高用zing拍照后,返回其它页面操作时,主线程关掉或程序退出的问题解决

    产生错误的代码: @Override protected void onCreate(Bundle savedInstanceState) { StrictMode.setThreadPolicy(n ...