使用一些带有 NIO 的 SocketChannels 我通过这个方法传递密钥来获取消息。但是,每当它通过时,它都会显示一个换行符,我终生无法找出原因和位置。任何帮助,将不胜感激。
public void messageHandler(SelectionKey key) throws IOException
{
SocketChannel ch = (SocketChannel) key.channel();
StringBuilder sb = new StringBuilder();
buf.clear();
int read = 0;
while( (read = ch.read(buf)) > 0 ) {
buf.flip();
byte[] bytes = new byte[buf.limit()];
buf.get(bytes);
sb.append(new String(bytes));
buf.clear();
}
}
编辑:我错误地在那里留下了一个打印语句,用于我自己的调试。这与它无关。我将其输出到 sb.toString() 并在其中包含一个新行。