2016-09-17 5 views
3

У меня есть локальный серверный класс, который отправляет два типа сообщений String («Первое сообщение», «Второе сообщение») в класс клиента. В клиентском классе я хотел бы поместить их в код ArrayList из BufferedReader и затем распечатать.String from bufferedReader to arraylist

void go() throws IOException { 
    Socket socket = new Socket("127.0.0.1",4242); 
    InputStreamReader streamReader = new InputStreamReader(socket.getInputStream()); 
    BufferedReader reader = new BufferedReader(streamReader); 
    ArrayList <String> list = new ArrayList<String>(); 
    while (reader.readLine() != null) { 
     list.add(reader.readLine()); 
    } 
    System.out.println(list); 
} 

Но все, что я получаю - это линия «нулевой» Что случилось с ним? Я буду очень признателен за любую помощь

+0

код, указанный не будет печатать "нуль" в результате, когда-либо. Что-то еще происходит. –

ответ

1

ciprianoss правильно, но и в петля

while (reader.readLine() != null) { 
    list.add(reader.readLine()); 
} 

вы читаете из файла ДВАЖДЫ

После того, как в то время, и снова только перед добавлением.

list.add(reader.readLine()); 

, как ciprianoss предложил

String line; 
while((line = reader.readLine()) != null) 
{ 
    list.add(line); 
{ 
0

После того, как вы .readline() он больше не будет находиться в буфере, изменить время цикла для:

String line = null; 
while((line = reader.readLine()) != null) { 
    list.add(line); 
}