我正在使用Kafka,并遵循本教程(https://cwiki.apache.org/confluence/display/kafka/consumer+group+example)
经过一些调整后,代码编译,一切正常运行。我的问题是,我试图利用Kafka服务器发送给我的字节数组来进行一些处理。如果使用默认代码,一切正常,字节数组将转换为字符串并显示在屏幕上。如果我尝试读取字节数组并将其分配给一个字符串,这样我就可以在屏幕上显示它,然后解析它,什么都不会发生。
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);
有人能告诉我为什么不能把字节数组分配给我的字符串吗?当然,如何修复我的故障?
我看了一下:
java字节到字符串
java中字节到字符串的转换
将字节[]转换为字符串
但它们似乎都不适用,它们都试图在字符串初始化时将字节数组分配给字符串,而我在这里不能这样做。
3条答案
按热度按时间bzzcjhmw1#
只要把花括号,而环块。
k4aesqcs2#
您的代码失败,因为您没有用大括号括起代码块。调整代码会显示:
事实上,有了这些大括号,这个代码段就相当于您的第一个代码段。
顺便说一下:不需要声明变量
msg
在圈外。i7uaboj43#
你缺少了花括号,所以你的println只在最后一次执行。试试这个: