Exception in thread "Thread-0" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
at java.util.Arrays.copyOf(Arrays.java:3236)
at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
at TestSocket$ServerSocketThread.run(TestSocket.java:45)
原因:
读入流的时候在while 循环里面没有读取,直接write了,下面的
byte[] bytes = new byte[1024];
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int read = inputStream.read(bytes);
while (read!=-1){
byteArrayOutputStream.write(bytes,0,read);
}
String 数 = byteArrayOutputStream.toString("UTF-8");
System.out.println("读取到:"+数);
解决:在while 里面添加
read = inputStream.read(bytes);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int read = inputStream.read(bytes); while (read!=-1){ byteArrayOutputStream.write(bytes,0,read); read = inputStream.read(bytes); } String 数 = byteArrayOutputStream.toString("UTF-8"); System.out.println("读取到:"+数);