gpt4 book ai didi

java - 什么时候在 Java 中使用 flush()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:40:16 25 4
gpt4 key购买 nike

import java.io. * ;
public class Ser {

public static void main(String args[]) {

try {
John myObj = new John("Sachin", "Cricket");
System.out.println(myObj);
FileOutputStream fos = new FileOutputStream("FileName");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(myObj);
oos.flush();
oos.close();
} catch (Exception e) {
System.out.println("Expection" + e);
System.exit(0);
}

try {
John myObj2;
FileInputStream fis = new FileInputStream("FileName");
ObjectInputStream ois = new ObjectInputStream(fis);
myObj2 = (John) ois.readObject();
ois.close();
System.out.println("New Object" + myObj2);
} catch (Exception e) {
System.out.println("Expection" + e);
System.exit(0);
}

}
}

class John implements Serializable {

private String name;
private String department;

public John(String name, String department) {
this.name = name;
this.department = department;
}

public String toString() {
return "Name" + name + " " + "Department" + department;

}

}

我在上面的例子中有几个问题。

  1. 什么时候使用 flush 方法,为什么要使用它?
  2. close 方法在这里打分是什么?
  3. myObj2 = (John) ois.readObject(); ... 如果我错了,请纠正我,我正在读取文件对象并将其存储到另一个对象中,并对文件对象进行类型转换。
  4. 在 Java 中序列化或持久化数据的替代方案是什么?我不希望数据以字节流的形式进入文件。

最佳答案

  1. When to use flush method and why do we use it?

这个在需要同步发送的时候使用

例如,你有一个双工(双向)连接,你刚刚发送了一条消息,现在需要等待回复,如果不刷新,缓冲的输出流可能会保留它直到缓冲区填满(死锁)

  1. myObj2 = (John) ois.readObject(); Please correct me if I am wrong, I am reading the file object and storing into another object and typecasting the file object.

错了!您从流中读取一些数据并将其类型转换为 John(如果读取的对象不是 John,则会抛出)

  1. What are the alternatives of Serialization or persisting the data in Java. I don't want the data to get into file as byte stream.

你可以把它写成文本(把字段写成一行的文本)并提供一个方法把它解析成一个对象

关于java - 什么时候在 Java 中使用 flush()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7300676/

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