“DataOutputStream”和“ObjectOutputStream”之间的区别

时间:2013-09-02 20:44:33

标签: java io

我是初学者程序员Java Tutorial

Basic I/O部分,提到的两个类别是Data StreamsObject Streams

它们非常类似地使用:

out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));

// ..

in = new DataInputStream(new BufferedInputStream(new FileInputStream(dataFile)));

代表DataInputStream

out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));

// ..

in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(dataFile)));

代表ObjectInputStream

我知道它说DataInputStreams用于原始对象,而ObjectInputStreams用于对象(以及它们的序列化),那么我应该使用哪一个?两个使用原始类型的示例类之间没有明显的区别。我通常也使用原始类型。

对于表现,哪一个更好?还有其他大的差异吗?

感谢。

1 个答案:

答案 0 :(得分:6)

DataStreams用于原始类型的I / O,intfloatdouble等等。

ObjectStreams用于对象的I / O

如果您知道将要明确使用原始类型,那么请使用DataStreams,否则请使用实现DataInput interface的更通用的ObjectStreams以及{{3}所以可以使用基元和对象。