Java InputStream到Python(PY4J)
我使用PY4J()在python中运行Java代码 我的java函数返回一个InputStream,我想在python代码中对其进行操作:Java InputStream到Python(PY4J),java,python,inputstream,py4j,Java,Python,Inputstream,Py4j,我使用PY4J()在python中运行Java代码 我的java函数返回一个InputStream,我想在python代码中对其进行操作: from py4j.java_gateway import JavaGateway gateway = JavaGateway() input_stream = PY4J_GateWay.getPCAP(key); ... Java代码: public InputStream getPCAP(key) { InputStream inp
from py4j.java_gateway import JavaGateway
gateway = JavaGateway()
input_stream = PY4J_GateWay.getPCAP(key);
...
Java代码:
public InputStream getPCAP(key) {
InputStream inputStream = cyberStore.getPCAP(pcapStringKey);
return inputStream;
}
Python代码:
from py4j.java_gateway import JavaGateway
gateway = JavaGateway()
input_stream = PY4J_GateWay.getPCAP(key);
...
如何获取python中的InputStream
在将其返回python之前,是否应该将其转换为java代码中的其他内容?我猜您希望从输入流中读取 Java的API允许您将
输入流
读入字节
数组。通过引用传递Pythonicbytearray
没有简单的方法,但是您可以轻松添加一个方法,该方法从InputStream
读取并返回一个byte
数组:
public byte[] read(InputStream stream, int count) throws IOException {
byte[] bytes = new byte[count];
stream.read(bytes);
return bytes;
}
然后,在Python中,可以调用此方法从InputStream
读取:
gateway = JavaGateway()
input_stream = gateway.getPCAP(key)
data = gateway.read(input_stream, 1000) # reads 1000 bytes from input_stream
我们需要更多的代码来回答这个问题:包含getPCAP的类以及如何创建和访问这个类的实例。在通过Py4j共享流和在文件系统(甚至/dev/shm)上存储数据与加载普通python操作方式之间,您有什么样的基准比较吗?