如何将reader.readLine()分为两个循环?

时间:2014-05-02 21:06:20

标签: java

我正在从txt文件中读取数据。我想从每十行和“。”创建新对象。表示当前对象没有更多的数据行(我使用两种类型的对象(“Nemfuggetlen”和“fuggetlen”),“fuggetlen”有9,“Nemfuggetlen”有7行,“。”分隔他们的数据线)。

问题是:当我连续阅读两个“Nemfuggetlen”对象时,它工作正常,但如果我在“Nemfuggetlen”之后阅读“fuggetlen”,它会先“-------”到下一个对象数据线,什么时候不应该。对于“Nemfuggetlen”对象,它应该用“-------”填充“adatok”字符串数组的最后3行,然后跳到下一个对象。

int sorokszama = 0;
    input.mark(300); 
    while((s = input.readLine()) !=null){ 
    sorokszama++; 
    System.out.println("Sorok szama : " + sorokszama);
    input.reset(); 

    for(int h = 0; h < sorokszama/10; h++){
        for(int i = 0;(s = input.readLine()) !=null; i++) {
            if(i < 10){
                if(!(".".equals(s))) {
                    adatok[i] = s;
                    System.out.println(adatok[i]);
            } 
                else {
                    adatok[i] = "-------";
                    System.out.println(adatok[i]);
                    break;
            }   
        }       
    }
        if("Ferfi".equals(adatok[2])){ 
            nem = true;
        }
        else {
            nem = false;
        }

        if("Van".equals(adatok[4])){
            tamogato = true;
        }
        else{
            tamogato = false;
        }
        if("-------".equals(adatok[7])){    //A kepviselo nem fuggetlen
        k = new Nemfuggetlen(adatok[0], Integer.parseInt(adatok[1]), nem, adatok[4], new Kerulet (Integer.parseInt(adatok[5])), adatok[6]);
        }
        if("-------".equals(adatok[9])){ // A kepviselo fuggetlen
        k = new Fuggetlen(adatok[0], Integer.parseInt(adatok[1]), nem, adatok[4], new Kerulet (Integer.parseInt(adatok[5])),tamogato, adatok[7], Integer.parseInt(adatok[8]));
        }

        kepviselok.add(k);
        //System.out.println(kepviselok.get(0));
    }
    System.out.println("Kepviselok szama : " + sorokszama/10);
    for(int i = 0; i < kepviselok.size(); i++) {
    System.out.println((i+1) + ". tag : " + kepviselok.get(i));
    }
    input.close();

0 个答案:

没有答案