Java InputStream到Python(PY4J)

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

我使用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 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允许您将
输入流
读入
字节
数组。通过引用传递Pythonic
bytearray
没有简单的方法,但是您可以轻松添加一个方法,该方法从
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操作方式之间,您有什么样的基准比较吗?