java读写ini或properties文件

网络精灵 2007-07-18 09:03:36
原文件内容:
a1=aaa
a2=bbb
a3=ccc
a4=ddd


我想把它改一条内容或多条内容,而且位置不变。我现在用的方法是把原文件内容读出来,然后新建一个同名文件,再把内容写进去。

不过这样有点不好,有没有更好的方法。不新建文件。
...全文
3849 33 打赏 收藏 转发到动态 举报
写回复
用AI写文章
33 条回复
切换为时间正序
请发表友善的回复…
发表回复
网络精灵 2007-08-03
  • 打赏
  • 举报
回复
单实现效果是可以实现的,但选哪种方法更好是有必要的。必竟资源不是用来浪费的,能省则省。欢迎大家继续讨论。存数据库可以考虑一下,不过我认为这样不如直接写文件好。写数据库会比写文件快吗?还是其他的原因。
骑行的咖啡豆 2007-08-02
  • 打赏
  • 举报
回复
需要持久化的配置,我觉得还是使用xml的好点.
如果确实有必要的话,也可以保存到数据库.
不管怎么样 ,读写文件当然是很容易实现的.
sureyor 2007-08-02
  • 打赏
  • 举报
回复
properties和ini本来就是常量文件,谁没事还老变来变去的?
如果有变动需求,一般都应该保存到DB中..
骑行的咖啡豆 2007-08-02
  • 打赏
  • 举报
回复
我觉得一般情况下使用properties的配置文件都是不需要改变的,如果需要改变的话,我们可以使用xml配置文件,可以使用dom来修改xml,实现配置的动态话,可能要好用些.
网络精灵 2007-08-02
  • 打赏
  • 举报
回复
有点沉下去了,谢谢大家参与。有好方法的快点,先谢谢了。
网络精灵 2007-07-19
  • 打赏
  • 举报
回复
主要为以后维护做前提嘛,也没办法,呵呵。
sureyor 2007-07-19
  • 打赏
  • 举报
回复
不就是存放一些常量吗,能难到哪去?
把时间都花费在这上面,很难理解呀,哈哈~~
网络精灵 2007-07-19
  • 打赏
  • 举报
回复
我们也考虑了用xml,现在想确定的是用哪种方法更简单,更好一些。
网络精灵 2007-07-19
  • 打赏
  • 举报
回复
xml位置当然不会变,我的意思是说在我这项目里,用到它们的功能是一样的,我只需要格式和内容而已。
sureyor 2007-07-19
  • 打赏
  • 举报
回复
properties,ini,xml差异大啦,怎么能是差不多呢?
properties: key-value
ini: section: key-value
xml: 树型结构

xml难道修改了某一个节点的值之后它的顺序也会变?...
网络精灵 2007-07-19
  • 打赏
  • 举报
回复
properties与ini是一样的。XML与前两种也差不多,只不过是有格式而已。
sureyor 2007-07-19
  • 打赏
  • 举报
回复
properties乱不乱我没试过,不过ini应该是不乱的吧?
而且楼主的需求有点古怪,其实对于这种常量的定义不一定非要采用文件的方式,你也可以采用java类或者DB的方式来存储.
更好一点的和先进一点的就是用XML文件
网络精灵 2007-07-19
  • 打赏
  • 举报
回复
位置一样是为了以后分析简单,还有个问题,注释文字也都需要带着。
例如:
//a1的值。。。。。
a1=222aa

//下面是
//a2的值
a2=3fs

//a3
a3=aaa
网络精灵 2007-07-18
  • 打赏
  • 举报
回复
要求不变位置。

lirunjie1124() 你的方法就是把所有的属性键全列出来了。这样比较麻烦些。我没找到更好的方法,大家有吗?不一定非要用properties类。
北京朝五晚九 2007-07-18
  • 打赏
  • 举报
回复
public void propertiesFileTest(String str1,String str2,String str3,String str4) throws Exception
{
Properties properties = new Properties();
FileInputStream fileInput=new FileInputStream("e:/Test.properties");
properties.load(fileInput);
properties.setProperty("a1", str1);
properties.setProperty("a2", str2);
properties.setProperty("a3", str3);
properties.setProperty("a4", str4);
OutputStream fileOutput=new FileOutputStream("e:/Test.properties");
properties.store(fileOutput, "TestProperties");
fileOutput.close();
}
joejoe1991 2007-07-18
  • 打赏
  • 举报
回复
变不变位置好像没有什么区别吧
网络精灵 2007-07-18
  • 打赏
  • 举报
回复
Properties类,直接写位置会变,如果全列出来,需要把内容写进内存或临时文件,这样还是很复杂。如果量大一点,结果会怎么样?有没有更好的方法。再就是我只是举一个例子,实际应用当然不会这么小的文件。
weiqiyiji 2007-07-18
  • 打赏
  • 举报
回复
我说过我只照楼主的说的内容改
sureyor 2007-07-18
  • 打赏
  • 举报
回复
weiqiyiji(),这么改ini是不对的,ini是分段的,同一个ini中可能存在相同的行
weiqiyiji 2007-07-18
  • 打赏
  • 举报
回复
test.ini的内容就是楼主的内容,
照楼主的意思写个
不过地址好像变了
RandomAccessFile in = new RandomAccessFile("test.ini","rw");
String s1,s2 = new String();

while( (s1 = in.readLine()) != null){
if( s1.equals("a2=bbb"))
s1 = "a2=change";
s2 += s1 + "\n";
}
in.seek(0);
in.writeBytes(s2);
加载更多回复(13)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧