我有一个系统随机将一些数据发送到tcp端口。
发送的数据如下:
<?xml version="1.0" encoding="UTF-8"?>
<Event> usefull XML data </EVENT>
我正在使用Java,通常我使用:
BufferedReader inFromClient =
new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
while(true){
clientSentence = inFromClient.readLine();
if(clientSentence == null){
break;
}
System.out.println("Received: " + clientSentence);
//parse XML file
}
但<Event>
部分并未以"\n"
结尾,因此它仍然停留在inFromClient.readLine()
。
为了快速解决问题,我做了这个:
String valReadAux = "";
while(true){
int val = sdf.read();
if(val < 0){
break;
}
valReadAux = valReadAux + ((char)val);
if(valReadAux.contains("/EVENT>")){
System.out.println(valReadAux);
}
}
但这不是最好的解决方案,你能给我一个更好的策略吗?我也有Java 6的限制。