【发布时间】:2016-07-14 13:48:43
【问题描述】:
我对 Java 中不同的读写方法的数量感到非常困惑,找不到适合我需要的方法。
我有一个如下所示的文本文件:
CharName{
Sheet{
Vitality{
Short=LP,Name=Life,Base=1000,Equip=0,Buff=0;
Short=LPR,Name=Life regen per sec,Base=50,Equip=0,Buff=0;
}
Magic{
Short=MP,Name=Mana,Base=100,Equip=0,Buff=0;
Short=MPR,Name=Mana regen per sec,Base=5,Equip=0,Buff=0;
}
}
}
它实际上要大得多,但这足以说明我的意思。
我想做一个基本上看起来像getInfoFromCharFile(sectionName, categoryName, rowNum, tagName) 的函数。
例如:getInfoFromCharFile(Sheet, Vitality, 2, Name) 这样它给了我 50) 和写 saveInfoToCharFile(sectionName, categoryName, rowNum, tagName, newValue)
最重要的是,我试图让当其中一个文件被读取时,我有一个简单的方法来“加载它”(系统地读取所有内容) - 所以类似于“find sheet;找到 Vitality;获取下一个 { 和 } 之间的所有内容;在 ; 处拆分;.; 找到 Magic ; 在下一个 { 和 }; 之间获取所有内容。依此类推。 我知道如何进行吐痰和处理,但我怎样才能让它“加载”大括号之间的所有内容?
注意:我确实阅读、观看和 Google 了很多关于此的内容,但找不到任何可以让我了解如何解决问题的内容。我已经坐在这个问题上好几个星期了!我以前只使用属性,但很快就变得非常丑陋。
我会向您展示在该解决方案中“加载”的代码,但上次我不得不编辑它时,我确实花了几个小时才再次理解它 - 所以是的,我猜代码不是很好,这就是为什么我想换成这样。
【问题讨论】:
-
从不;曾经;在文本文件中进行内联替换。这是一个万无一失的数据丢失秘诀。也就是说,如前所述,考虑使用标准格式。存在很多。