何时在Java中使用flush()?

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. 何时使用冲洗方法,为什么要使用它?
  2. 封闭方法在这里得分如何?
  3. myObj2 = (John) ois.readObject(); …如果我错了,请纠正我,我正在读取文件对象并将其存储到另一个对象中,并对该文件对象进行类型转换。
  4. 序列化或将数据持久保存在Java中有哪些选择。我不希望数据以字节流的形式进入文件。

回答:

何时使用冲洗方法,为什么要使用它?

它将冲洗仍由缓冲的所有内容OutputStream。JavaDoc中提供了详细描述。


封闭方法在这里得分如何?

我不确定“进行分数”是什么意思,但是该close方法最终关闭了资源(输入或输出),并释放了例如文件句柄。您应该始终在一个finally块中调用close

来清理操作系统可能具有的所有引用。

InputStream is = null;

try {

is = new FileInputStream(...);

// do stuff

} catch (IOException e) {

// do stuff

} finally {

if (is != null) {

is.close();

}

}


myObj2 =(John)ois.readObject();

…如果我错了,请纠正我,我正在读取文件对象并将其存储到另一个对象中,并对该文件对象进行类型转换。

以某种方式正确,您可以反序列化之前写入文件的对象。这些文件是专有文件,只能由Java理解,因此您的最后一个问题是一个 问题!


序列化或将数据持久保存在Java中有哪些选择。我不希望数据以字节流的形式进入文件。

您有很多选择。对于客户端应用程序,您可能需要使用XML,JSON或SQLlite等轻量级数据库。在服务器端,您可能还会查看更健壮的数据库(例如MySQL)。

以上是 何时在Java中使用flush()? 的全部内容, 来源链接: utcz.com/qa/416240.html

回到顶部