Java方法println被跳过

时间:2018-11-02 19:53:56

标签: java

//  out.println(" ");//solution
    for (Utilizador ut : Diretorio.getInstance().getUtilizadores()) {
     String s = ("CLT " + ut.getEndereco() + " " +  ut.getPorto() );
        out.println(s); 
        }
    out.println("END");
    System.out.println("Consulta realizada");

因此,我将其发送到我的输出流,但是在我的“输入”流中,我仅收到“ END”(如果列表中只有1个对象),如果列表中有2个对象,我的“输入”流中将仅显示1个对象,然后结束 这是我的“内”

} else if(in.readLine()!=null){
   while((msg = in.readLine())!= null){                      
    System.out.println(msg);
   }
 } 

不能理解为什么我的“ out.println()”之一被跳过或根本不显示 这两个类都是线程

1 个答案:

答案 0 :(得分:3)

在此代码中

} else if(in.readLine()!=null){
   while((msg = in.readLine())!= null){                      
       System.out.println(msg);
   }
}

执行if(in.readLine()!=null)时,将读取一行但不打印一行,然后在while循环中,每个msg = in.readLine()读取另一行并进行打印。
但是第一行从不打印。
更改为:

} else {
   while((msg = in.readLine())!= null){                      
       System.out.println(msg);
   }
}