ByteArrayOutputStream报OutOfMemoryError错误实际是分情况的
先贴代码,再来讲述
一、主要测试代码
public static byte[] mapToBytes(HashMap map){
try{
MyByteArrayOutputStream mem_out = new MyByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(mem_out);
out.writeObject(map);//位置1 danielinbiti
out.close();
mem_out.close();
System.out.println("here");
System.out.println("count="+mem_out.getCount());
System.out.println("length="+mem_out.getBuf().length);
byte[] bytes = mem_out.toByteArray();//位置2 danielinbiti
return bytes;
}catch(IOException ioe){
System.out.println(ioe.getMessage());
}catch(Exception ex){
System.out.println(ex.getMessage());
}
return null;
}
public static void main(String[] args) {
HashMap map=new HashMap();
for(int i=0;i<3000000;i++){//调整该