用new String(Files.readAllBytes(Paths.get("mas.txt")));为什么推不进kafka
时间: 2024-04-11 22:27:19 浏览: 102
JDK1.7 之java.nio.file.Files 读取文件仅需一行代码实现
使用`new String(Files.readAllBytes(Paths.get("mas.txt")))`读取文件内容并传递给Kafka producer发送消息是可行的。但是,你需要确保在发送之前,Kafka producer已经正确配置和初始化。
下面是一个示例代码,展示了如何使用`new String(Files.readAllBytes(Paths.get("mas.txt")))`将文件内容发送到Kafka:
```java
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Properties;
public class KafkaFileProducer {
public static void main(String[] args) {
// Kafka producer配置
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
// 创建Kafka producer实例
KafkaProducer<String, String> producer = new KafkaProducer<>(props);
try {
// 从文件中读取字符串
String message = new String(Files.readAllBytes(Paths.get("mas.txt")));
// 发送消息
ProducerRecord<String, String> record = new ProducerRecord<>("topic_name", message);
producer.send(record);
System.out.println("Message sent successfully");
} catch (IOException e) {
e.printStackTrace();
} finally {
producer.close();
}
}
}
```
上述代码使用了Java的`Files.readAllBytes()`方法来读取文件内容,并将其作为字符串传递给Kafka producer发送消息。`bootstrap.servers`属性指定了Kafka集群的地址,`key.serializer`和`value.serializer`属性指定了消息的键和值的序列化方式。
请确保在使用该代码之前,你已经提供了正确的Kafka集群地址,并且已经添加了相关依赖,如Kafka的客户端库。
阅读全文