Пример 1, код который не работает, точнее программа просто закрывается без ошибки и выводит 0, но ничего не считывает:
public static class Read3Strings extends Thread{
private ArrayList <String> list = new ArrayList<>();
// тут в следующем примере будет счетчик для while
@Override
public void run() {
try{
for(int i = 0; i < 3; i++){ //тут в следующем примере будет while
if(reader.ready()){
list.add(reader.readLine());
}
}
} catch (IOException e){
}
}
public void printResult(){
for(String l : list){
System.out.print(l + " ");
}
System.out.print("\n");
}
}
Пример 2, тут все работает нормально, разница только в использовании while вместо for
public static class Read3Strings extends Thread{
private ArrayList <String> list = new ArrayList<>();
private int count = 0;
@Override
public void run() {
try{
while(count < 3){
if(reader.ready()){
list.add(reader.readLine());
count++;
}
}
} catch (IOException e){
}
}
public void printResult(){
for(String l : list){
System.out.print(l + " ");
}
System.out.print("\n");
}
}
}