【发布时间】:2016-03-31 04:53:17
【问题描述】:
我正在使用 Kafka 并按照本教程进行操作 (https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example)
经过一些调整后,代码可以编译并且一切正常运行。我的问题是我正在尝试利用 Kafka 服务器发送给我的字节数组来进行一些处理。如果我使用默认代码,一切正常,字节数组将转换为字符串并显示在我的屏幕上。如果我尝试读取字节数组并将其分配给 String 以便我可以将其显示到屏幕上然后解析它,则不会发生任何事情。
it.next().message() 返回一个字节数组
默认代码:
ConsumerIterator<byte[], byte[]> it = m_stream.iterator();
while (it.hasNext())
System.out.println("Thread " + m_threadNumber + ": " + new String(it.next().message()));
我的代码出错了:
ConsumerIterator<byte[], byte[]> it = m_stream.iterator();
String msg= "";
while (it.hasNext())
msg = new String(it.next().message());
System.out.println("Thread " + m_threadNumber + ": " + msg);
谁能告诉我为什么我不能将字节数组分配给我的字符串?当然还有如何解决我的故障?
我看过了:
Convert byte to string in Java
但它们似乎都不适用,它们都试图在字符串初始化时将字节数组分配给字符串,而我在这里不能这样做。
【问题讨论】:
-
你得到什么错误信息?
-
另外,为什么你的while循环周围没有大括号?
-
没有错误信息。屏幕上什么都没有显示
-
请比“它坏了”更准确地描述问题
-
好吧,我在办公桌前坐得太久了。默认代码只执行那一行,所以我不需要括号。当我添加额外的行时,我违反了一个有一段时间的假设。感谢@Juan,因为我在登记入住时得到了第一个答案(老实说,我欠你一个道歉,因为我对此嗤之以鼻。很抱歉对你的回复有不良想法)我会尽快接受它,我会尽快接受跨度>
标签: java arrays string bytearray apache-kafka