列表操作逻辑需要帮助
问题描述:
^h家伙,列表操作逻辑需要帮助
我有一段代码,这会寻找一些类似的.ser文件,并将其加载到一个列表
的文件(rulesIncr1.ser, rulesIncr2.ser,rulesIncr3.ser ......等等)
立即加载所有我写了下面的逻辑文件
String defaultfilename = "rulesincr";
int i=1;
String incrFile;
//THE FOLLOWING CODE WILL CHECK FOR ANY NU8MBER OF INCR RULES FILE IN THE LOCATION AND ADD THEM TO A RULE MODEL LIST
do
{
String tempincr = new Integer(i).toString();
incrFile = defaultfilename.concat(tempincr).concat(".ser");
FileInputStream fis= new FileInputStream(filePath.concat(incrFile));
ObjectInputStream inStreamIncr = new ObjectInputStream(fis);
myRulesIncr = (List<RuleModel>)inStreamIncr.readObject();
i++;
}
while(new File(filePath.concat(incrFile)).isFile());
现在我面临的问题是每每一次我myRulesIncr将被刷新,最后只加载最后一个文件。我需要拥有所有加载的文件。请指教
感谢
答
在循环总是会覆盖列表到该myRulesIncr
变量指向该行
myRulesIncr = (List<RuleModel>)inStreamIncr.readObject();
。如果你想所有这些RuleModel
实例添加到myRulesIncr
你应该有不熟悉标准列表对象像
List<RuleModel> myRulesIncr = new ArrayList<RuleModel>();
while{
//your while loop without the
//myRulesIncr = (List<RuleModel>)inStreamIncr.readObject(); line
myRules.addAll((List<RuleModel>)inStreamIncr.readObject());
}
答
林,但这个问题似乎在这里:
myRulesIncr = (List<RuleModel>)inStreamIncr.readObject();
你似乎是使一个新的列表每次,即使不是我相信你需要增加到下一个节点,即myRulesIncr = myRulesIncr.next()
感谢罗宾,但eclipse警告以下空指针访问:变量myRulesIncr只能在t他的位置 – jeyaprakash 2012-04-05 13:54:59
然后你还没有初始化变量。这个消息很清楚 – Robin 2012-04-05 13:58:47