TinyINI开源了~~

简介:

序言

周六晚上,稍有点空,就想着是不是做一个INI的处理器?

它应该具有如下特性:

  1. 支持匿名Section
  2. 支持有名Section
  3. 相同Section中支持同名键值
  4. 支持注释
  5. 支持转码
  6. 支持流式读入
  7. 支持流式写出
  8. 可以方便的对INI内容进行修改
  9. 可以方便的对INI内容进行获取

说干就干,主要的程序1个小时就写完了,但是在正则匹配方面碰到了困难,弄了快2个小时还是没有解决彻底,幸好北京的开涛同学,出手相助给解决了。

今天进行了一下重构和测试,基本上比较舒服了,于是写篇文章进行总结:

类结构

对于INI的描述,采用了三个类来进行描述,一个INI文件对应于一个Sections,一个Sections可以包含多个Section,暂时不支持同名Section。

一个Section可以包含多个值对。

对INI结构的操作

对于INI的操作,最后是由IniOperator进行的,它从三个接口继承而来,三个接口分别对应于基础操作,值对操作和值操作。

代码实现统计

从上面的统计看,总共的代码行数是451行--一开始没有加对注释的支持,只有300行左右,由于增加了注释方面的支持,容量增加了50%。

示例

?
1
2
3
String string = ";abc\naa=bb;ccc\r\n[ccc];ddd\naa=bb;ccdd\r\nccc=ddd;aa;bb;cc" ;
         operator.read( new StringBufferInputStream(string), "UTF-8" );
         operator.write(System.out, "UTF-8" );



运行结果:

?
1
2
3
4
5
;abc
aa=bb;ccc
[ccc];ddd
aa=bb;ccdd
ccc=ddd;aa;bb;cc



当然取值,赋值自然不在话下,不仅可以还方便,不信看看上面的操作接口就知道了。

总结

欢迎大家获取TinyIni并提出修改意见。

源码地址:

http://git.oschina.net/tinyframework/tiny/

http://git.oschina.net/tinyframework/tiny/tree/master/framework/org.tinygroup.ini

问题列表

http://git.oschina.net/tinyframework/tiny/issues

相关文章
|
JavaScript Linux 编译器
c++开源协程库libgo介绍及使用
c++开源协程库libgo介绍及使用
|
前端开发 API 开发者
【raETable】🎉开源啦!开源啦!开源啦!🎉
【raETable】🎉开源啦!开源啦!开源啦!🎉
|
数据处理 开发工具
开源开源啦
开源开源啦
93 0
|
人工智能 自动驾驶
MiniGPT4,开源了!
MiniGPT4,开源了!
350 0
|
弹性计算 Dubbo Java
开源领域服务
开源领域服务
132 0
|
程序员
把自己开源了
用文字或视频记录自己的生活和想法,让我突然有种感觉,像是把自己给“开源”了。
178 0
|
关系型数据库 Linux 程序员
关于开源,你必须知道的: "君子协定"
为什么在一个技术论坛里冒出这篇法律和知识产权相关的分享呢? 因为,开源和自由软件是推动社会技术发展的重要力量,作为一个优秀的程序员,你一定会接触,学习和使用到开源软件,所以是一定要知道开源界最基本的游戏规则的
12486 1
|
Web App开发 测试技术 C#
C#开源汇总
原文:C#开源汇总 商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow 【免费】正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK Excel-读写组件-ExcelLibrary .
5418 0
下一篇
无影云桌面