java,为什么 DataInputStream 在空格时拆分字符串
java, why DataInputStream split String when whitespace
所以我尝试学习Socket
和DataInputStream
。
虽然我尝试了很多次,但我意识到 DataInputStream
读取字符串是分开的,意思是这样的:
客户端:
dos = new DataOutputStream(socket.getOutputStream());
String msg = "okay test some String"
dos.writeUTF(msg);
服务器端:
dis = new DataInputStream(socket.getInputStream());
while(true){
msg = dis.readUTF();
Syso(msg);
}
结果:
okay
test
some
String
我想用一行完整地阅读 msg
。我该怎么办?
使用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+" ");
}
所以我尝试学习Socket
和DataInputStream
。
虽然我尝试了很多次,但我意识到 DataInputStream
读取字符串是分开的,意思是这样的:
客户端:
dos = new DataOutputStream(socket.getOutputStream());
String msg = "okay test some String"
dos.writeUTF(msg);
服务器端:
dis = new DataInputStream(socket.getInputStream());
while(true){
msg = dis.readUTF();
Syso(msg);
}
结果:
okay
test
some
String
我想用一行完整地阅读 msg
。我该怎么办?
使用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+" ");
}