1楼那个是对的,但是 // 也可以 // String str=baos.toString("GBK"); // byte[] byte_array=str.getBytes("GBK"); byte[] byte_array = baos.toByteArray(); 这个用这个运行的时候就会出错 Exception in thread "main" java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325) at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(ObjectInputStream.java:3063) at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2864) at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1072) at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:704) at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:830) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370) at udpchat.Test.main(Test.java:23)
map.put("name", "kwj");
ByteArrayOutputStream bout = new ByteArrayOutputStream();
ObjectOutputStream oout = new ObjectOutputStream(bout);
oout.writeObject(map);
oout.flush();
ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
System.out.println(bin.available());
byte[] b = new byte[bin.available()];
bin.read(b);
HashMap<String, String> m1 = (HashMap<String, String>)(new ObjectInputStream(new ByteArrayInputStream(b)).readObject());
System.out.println(m1.get("name"));
// String str=baos.toString("GBK");
// byte[] byte_array=str.getBytes("GBK");
byte[] byte_array = baos.toByteArray();
// 也可以
// String str=baos.toString("GBK");
// byte[] byte_array=str.getBytes("GBK");
byte[] byte_array = baos.toByteArray();
这个用这个运行的时候就会出错
Exception in thread "main" java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325)
at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(ObjectInputStream.java:3063)
at java.io.ObjectInputStream$BlockDataInputStream.readUTF(ObjectInputStream.java:2864)
at java.io.ObjectInputStream.readUTF(ObjectInputStream.java:1072)
at java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:704)
at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:830)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at udpchat.Test.main(Test.java:23)
String str=baos.toString("GBK");
// byte[] byte_array=str.getBytes("GBK");
byte[] byte_array = baos.toByteArray();
这个得到的不一样