2012-04-05 3 views
-1

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()); 

가 지금 직면하고있어 문제가 내가 다음과 같은 논리를 작성한 모든 파일을로드하려면 각각 매 티 my myRulesIncr이 새로 고쳐지고 끝에 마지막 파일 만로드됩니다. 로드 된 모든 파일이 있어야합니다.

감사

답변

2

항상 myRulesIncr 변수 지점에 대한 목록을 우선합니다 루프의 행

myRulesIncr = (List<RuleModel>)inStreamIncr.readObject(); 

을 알려 주시기 바랍니다. 당신이 myRulesIncr에 모든 RuleModel 인스턴스를 추가 할 경우 표준 목록 개체에 익숙하지

List<RuleModel> myRulesIncr = new ArrayList<RuleModel>(); 

while{ 
//your while loop without the 
//myRulesIncr = (List<RuleModel>)inStreamIncr.readObject(); line 
myRules.addAll((List<RuleModel>)inStreamIncr.readObject()); 
} 
+0

고마워 Robin,하지만 eclipse는 다음 널 포인터 액세스를 경고합니다 : 변수 myRulesIncr은 t 그의 위치 – jeyaprakash

+0

그런 다음 변수를 초기화하지 않았습니다. 이 메시지는 매우 분명합니다. – Robin

0

임 뭔가를해야하지만, 문제는 여기에 나타납니다

myRulesIncr = (List<RuleModel>)inStreamIncr.readObject(); 

당신이 만드는 것으로 나타 매번 새로운 목록, 그리고 심지어는 당신이 다음 노드 즉, 증가 할 필요가 있다고 생각 myRulesIncr = myRulesIncr.next()