我正在将我的android图库中的图像发送到java服务器;但是,我得到了NegativeArraySizeException
。谁能告诉我我做错了什么?我不明白问题是什么。提前谢谢。
Android客户端:
Socket sock;
sock = new Socket("IP", PORT);
System.out.println("Connecting...");
OutputStream os = sock.getOutputStream();
File myFile = new File (selectedImagePath);
byte [] mybytearray = new byte [(int)myFile.length()];
FileInputStream fis = new FileInputStream(myFile);
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(mybytearray,0,mybytearray.length);
System.out.println("Sending...");
os.write(mybytearray,0,mybytearray.length);
os.flush();
sock.close();
Java Server
公共类接收{
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(PORT);
Socket socket = serverSocket.accept();
byte[] sizeAr = new byte[4];
InputStream inputStream = socket.getInputStream();
inputStream.read(sizeAr);
int size = ByteBuffer.wrap(sizeAr).asIntBuffer().get();
的System.out.println(大小); //获得负值
byte[] imageAr = new byte[size];
inputStream.read(imageAr);
BufferedImage image = ImageIO.read(new ByteArrayInputStream(imageAr));
System.out.println("Received " + image.getHeight() + "x" + image.getWidth() + ": " + System.currentTimeMillis());
ImageIO.write(image, "jpg", new File("C:/Users/Dan/Pictures/NewCat.jpg"));
serverSocket.close();
}
}