通过servlet传输字节数组,客户端发送字节数组代码如下:
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeInt(bytes.length);
out.write(bytes);服务端接收字节数组的代码如下:
DataInputStream in = new DataInputStream(req.getInputStream());
int length = in.readInt();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] byteChunk = new byte[4096]; // Or whatever size you want to read in at a time.
while ( (n = in.read(byteChunk)) > 0 ) {
outStream .write(byteChunk, 0, n);
}
outStream .flush();
byte[] s = outStream .toByteArray();
outStream .close();当数据量较少时,没有问题,但是当数据量到1 2百kb的时候,服务端接收就出现了问题,请问这个问题该怎么解决?
谢谢
DataOutputStream out = new DataOutputStream(conn.getOutputStream());
out.writeInt(bytes.length);
out.write(bytes);服务端接收字节数组的代码如下:
DataInputStream in = new DataInputStream(req.getInputStream());
int length = in.readInt();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] byteChunk = new byte[4096]; // Or whatever size you want to read in at a time.
while ( (n = in.read(byteChunk)) > 0 ) {
outStream .write(byteChunk, 0, n);
}
outStream .flush();
byte[] s = outStream .toByteArray();
outStream .close();当数据量较少时,没有问题,但是当数据量到1 2百kb的时候,服务端接收就出现了问题,请问这个问题该怎么解决?
谢谢
你定义的byteChunk怎么一直添加数据啊,
你应该做处理的,不然你一直放数据进去,当然会有放不下的时候。