Java 使用json 做配置文件
概述
经常会用到通过配置文件,去配置一些参数,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 做配置文件的更多相关文章
- Java为何用xml做配置文件?
在Java世界里xml配置文件几乎是首选,xml有什么好的特性呢? xml能存储小量数据,仅仅是存储数据. xml可以跨平台,主流各种平台都对xml有支持, 真正的跨平台, xml读取速度快. xml ...
- 2018.4.11 Java为何用xml做配置文件? 理由如下
在Java世界里xml配置文件几乎是首选,xml有什么好的特性呢? 第一:xml能存储小量数据,仅仅是存储数据. 第二:xml可以跨平台,主流各种平台都对xml有支持, 真正的跨平台, 第三:xml读 ...
- 二进制配置文件为什么比json等配置文件效率高
二进制配置文件为什么比json等配置文件高效 项目中用spine做动画,spine可以导出json和二进制的动画配置文件,蛋疼的是spine官方竟然没有提供c的二进制配置解析代码,更没有提供它二进制文 ...
- Java 的 JSON 开源类库选择比较(zz)
在看了作者的介绍,然后我又到mvnrepository上去看了各个库的的使用数之后,发现只能在jackson和gson之间做选择. 以下是原文 有效选择七个关于Java的JSON开源类库 April ...
- java中json包的使用以及字符串,map,list,自定义对象之间的相互转换
做一个map和字符串的转换,需要导入这些jar包,这是最基本的一些jar包. 经过多方尝试得出结论入下: 首先导入基本包:json-lib-2.2.3-jdk15.jar 如果没有这个jar包,程序是 ...
- JSON以及Java转换JSON的方法(前后端常用处理方法)
)); map.put("arr", new String[] { "a", "b" }); map.put("func" ...
- 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 ...
- java使用Map做缓存你真的用对了吗?弱引用WeakHashMap了解一下
目录 关于缓存我们应该考虑什么?-intsmaze WeakHashMap弱引用-intsmaze 线程安全问题-intsmaze Collections-intsmaze ThreadLocal-i ...
- java解析Json字符串之懒人大法
面对Java解析Json字符串的需求,有很多开源工具供我们选择,如google的Gson.阿里巴巴的fastJson.在网上能找到大量的文章讲解这些工具的使用方法.我也是参考这些文章封装了自己的Jso ...
随机推荐
- leetcode441
public class Solution { public int ArrangeCoins(int n) { //convert int to long to prevent integer ov ...
- windows删除服务的命令行语句
想要删除windows xp里的一个服务,怎么办呢? 系统没有可视化的工具可以用,不过内置了一个cmd命令 sc.exe 具体操作方法是:开始--运行--cmd,进入cmd命令行. 然后输入: sc ...
- Linux下的终端快捷键
今天才发现Linux下的终端有这么多好用的快捷键. Shift+Ctrl+T:新建标签页 Shift+Ctrl+W:关闭标签页 Ctrl+PageUp:前一标签页 Ctrl+PageDown:后一标签 ...
- grep 过滤.svn文件
[grep 过滤.svn文件] 问题: 在repository搜索代码时,常常会搜索到.svn的代码,如果不想搜索.svn目录下的相关代码怎么办? 1.使用管道进行双层“过滤”,其中第二次gre ...
- lammps模拟化学反应(1)
1. Can I use lammps to chemical reaction systems?Please note that you can only get as good an answer ...
- Cocoa Touch(三):图形界面UIKit、Core Animation、Core Graphics
UIKit 视图树模型 1.视图树模型 计算机图形实际上是一个视图树模型,每个视图都有一个本地坐标系.每个本地坐标系的组成部分是:原点在父坐标系中的位置,每个基在父坐标系中的位置,由此就可以根据向量的 ...
- oracle 基本函数小例子--查询身高段分数段
select * from student order by id drop table student select * from oracletest create table student( ...
- DropDownList绑定数据的几种方式
1. 视图中添加可以直接通过单击属性"Items"后的按钮为某一DropDownList控件添加数据项.每添加一项数据就是添加了一个ListItem(列表控件中的数据项).这种方式 ...
- mysql启动参数 skip-grant-tables
非常有用的mysql启动参数—— --skip-grant-tables. 顾名思义,就是在启动mysql时不启动grant-tables,授权表.有什么用呢?当然是忘记管理员密码后有用. 在mysq ...
- ubuntu 12.04安装jdk 8
转载:http://www.itnose.net/detail/6196130.html Ubuntu12.4安装jdk1.8 1.要安装的jdk,我把它拷在了共享文件夹里面. (用优盘拷也可以 ...