如何在文件数组中打印

时间:2015-05-12 15:53:25

标签: java arrays file

所以,我必须将数组列表插入到特定的文本文档中。 数组列表由用户在案例1中插入,并且运行良好。 当我在没有任何数据的情况下尝试调用案例4时,会创建文件并且它也是空的。 当我使用数组列表执行此操作时,我从catch获取错误消息。 我该如何解决?

这是对函数的调用。

case 4: System.out.println("\nLungimea dintre doua orase alaturate\n");
                try{
                    System.out.println("oabdobasoda");
                    salvareOras();
                }catch (Exception e){
                    System.out.println("Eroare");
                }

这是功能。

public static void salvareOras() 
    {
        for(int i = 0; i<drum.size()-1; i++){
            for(int j = 0; i<drum.size(); j++){
                if(drum.get(i).getPozitie() > drum.get(j).getPozitie()){
                    Oras aux = drum.get(i);
                    drum.add(i, drum.get(j));
                    drum.add(j, aux);
                }
            }
        }
        try {
            FileOutputStream fOut = new FileOutputStream("distante.txt");
            PrintStream ps = new PrintStream(fOut);

            for(int i = 0; i <drum.size()-1; i++){
                ps.println("d(" + drum.get(i).getNume()+","+drum.get(i+1).getNume()+")="+distOras(drum.get(i), drum.get(i+1)));
            }
            ps.close();
            fOut.close();
        } catch(IOException ex){
            System.out.println("Nu s-a putut crea fisierul");
            System.exit(1);
        }

    }

1 个答案:

答案 0 :(得分:0)

你在第二轮for循环中犯了一个小错误:

for(int i = 0; i<drum.size()-1; i++){

    //specifically on this line here:
    for(int j = 0; i<drum.size(); j++){
                 //^//That is not j

        if(drum.get(i).getPozitie() > drum.get(j).getPozitie()){
                                  //that means ^ will throw an IndexOutOfBoundsException
            Oras aux = drum.get(i);
            drum.add(i, drum.get(j));
            drum.add(j, aux);
        }
    }
}

只需将其更改为:

for(int i = 0; i<drum.size()-1; i++){
    for(int j = 0; j<drum.size(); j++){
                 //^ j
        if(drum.get(i).getPozitie() > drum.get(j).getPozitie()){
            Oras aux = drum.get(i);
            drum.add(i, drum.get(j));
            drum.add(j, aux);
        }
    }
}