2016-09-17 8 views
3

私はクライアントクラスに2つのStringメッセージ( "最初のメッセージ"、 "2番目のメッセージ")を送信するローカルサーバークラスを持っています。 クライアントクラスでは、ArrayList BufferedReaderのコードに入れて印刷したいと思います。バッファリングされたリーダーから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); 
} 

しかし、私は得ることのすべて - であることと間違って何 ライン「ヌル」? あなたは()それはもはやバッファに.readLineなりませんか、あなたのwhileループは、に変更すると、私は任意のヘルプ

+0

これまで、結果として "ヌル" が印刷されません指定されたコードを示唆しました。他に何かが起こっている。 –

答えて

1

ciprianossが正しいだけでなく、中にありますループ

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

は、あなたが追加する直前にTWICE

たまにはして再度ファイルから読んでいます。 ciprianossとして

list.add(reader.readLine()); 

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

のために非常に感謝されるでしょう:

String line = null; 
while((line = reader.readLine()) != null) { 
    list.add(line); 
} 
関連する問題