我正在使用PY4J (http://py4j.sourceforge.net/)在python中运行Java代码。
我的java函数返回一个InputStream,我想在我的python代码中操作它:
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代码中的其他内容?
发布于 2014-09-22 08:08:10
我猜你想从输入流中读取。
Java允许您从InputStream读取到byte数组。通过引用传递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_streamhttps://stackoverflow.com/questions/25891144
复制相似问题