gpt4 book ai didi

java - 无法理解使用 ObjectOutputStream 的输出格式

转载 作者:行者123 更新时间:2023-12-01 09:00:30 25 4
gpt4 key购买 nike

我使用 ObjectOutputStream 编写了以下代码:

class ClassToTestOutputStream implements Serializable{

int a;
String b;

public ClassToTestOutputStream(){
a=10;
b="Deepak";
}

public String toString() {

String s = ""+a+" "+b;
return s;
}
}
public class UsingOutputStreams {

ClassToTestOutputStream ref;
private ObjectOutputStream oos;

public UsingOutputStreams(){
try {
oos = new ObjectOutputStream(System.out);
} catch (IOException e) {
e.printStackTrace();
}
ref = new ClassToTestOutputStream();
}

public void writeOnScreen(){

try {
System.out.println("Writing on Screen");
oos.writeObject(ref);
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {

UsingOutputStreams obj = new UsingOutputStreams();
obj.writeOnScreen();
}
}

我得到了答案:

�� Writing on Screen

sr ClassToTestOutputStream����S��M I aL bt Ljava/lang/String;xp
t Deepak

请帮我弄清楚为什么会打印这样的输出。

最佳答案

ObjectOutputStreamObjectInputStream 可以读取的形式写入 Java 对象。生成的输出不适合人类消费,并且包含二进制形式的元数据和值。它并不意味着人类可读。正如您所见,尝试打印或显示写入 ObjectOutputStream 的数据将导致垃圾。

您应该仔细阅读ObjectOutputStream的Javadoc。

关于java - 无法理解使用 ObjectOutputStream 的输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41712509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com