Java, почему DataInputStream разделяет строку, когда пробел

Поэтому я пытался учиться Socket а также DataInputStream,

Хотя я пытаюсь сделать довольно попытку, я понял, что DataInputStream читать строку как разделенную, значит так:

Сторона клиента:

dos = new DataOutputStream(socket.getOutputStream());

String msg = "okay test some String"

dos.writeUTF(msg);

ServerSide:

dis = new DataInputStream(socket.getInputStream());

while(true){

    msg = dis.readUTF();

    Syso(msg);

}

результат:

okay

test

some

String

я хочу читать msg полностью в одну строку. Что я должен делать?

1 ответ

Решение

Использовать BufferedReader

dis = new BufferedReader(new InputStreamReader(socket.getInputs()))
while(true){
   msg = dis.readLine() 
   System.out.println(msg);
}

Или вы можете заменить System.out.println с System.out.print который не печатает символ новой строки в конце

dis = new DataInputStream(socket.getInputStream());
while(true){
   msg = dis.readUTF();
   System.out.print(msg+" ");
}
Другие вопросы по тегам