这是代码,但出现了错误:
bin = new ByteArrayInputStream(socket.getInputStream());
使用ByteArrayInputStream
从套接字中接收byte[]
是否可能?
这是代码,但出现了错误:
bin = new ByteArrayInputStream(socket.getInputStream());
使用ByteArrayInputStream
从套接字中接收byte[]
是否可能?
ByteArrayInputStream
。如果您只想从套接字读取字节数组,请执行以下操作:InputStream stream = socket.getInputStream();
byte[] data = new byte[100];
int count = stream.read(data);
变量count
将包含实际读取的字节数,数据当然会在数组data
中。
直接从套接字中读取无法获取ByteArrayInputStream
的实例。
您需要先读取并查找字节内容。
然后使用它来创建ByteArrayInputStream
的实例。
InputStream inputStream = socket.getInputStream();
// read from the stream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] content = new byte[ 2048 ];
int bytesRead = -1;
while( ( bytesRead = inputStream.read( content ) ) != -1 ) {
baos.write( content, 0, bytesRead );
} // while
现在,由于你已经有了baos,我认为你不再需要一个bais实例。
但是,为了使其完整,
你可以按以下方式生成字节数组输入流
ByteArrayInputStream bais = new ByteArrayInputStream( baos.toByteArray() );