[英]How can I read a String including new line from InputStream object in Java?
我在Java中有一个ServerSocket:
ServerSocket serverSocket = new ServerSocket(1000);
它接受一个clientSocket:
Socket clientSocket;
clientSocket = serverSocket.accept();
到目前为止,我正在阅读这样的输入:
BufferedReader clientSocketInputStream = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
while ((inputLine = clientSocketInputStream.readLine()) != null){
String message = inputLine;
// Hack the computer connecting to this one after here
但是,如果发送的文本是这样的
String stringToBeSent = "Hello\nHowareyou";
然后我遇到了麻烦。 因为我需要这样的文本。 2个不同的字符串不帮助我。
我怎么能按原样阅读呢?
谢谢。
两种选择:
将多个字符串放回原处。
StringBuilder sb = new StringBuilder() while ((inputLine = clientSocketInputStream.readLine()) != null) { String message = inputLine; sb.append(message); sb.append('\\n'); } String message = sb.toString();
使用BufferedInputStream
而不是BufferedReader
读取字节数组而不是String。 然后使用有效字符集将整个字节数组粉碎到String构造函数中。 这将要求您知道String的字节数。
您可以简单地逐个字符地阅读。 http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#read()
而不是读取行。
BufferedReader读取字符,直到它变为“\\ n”,“\\ r”或“\\ r \\ n”。 你可以逐个字符地阅读,但它不会改变任何东西,因为你如何确定哪个新的线路特征显示真正的新线?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.