2

我是遵循此Java 教程的初学者程序员。

基本 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用于对象(以及它们的序列化),那么我应该使用哪一个?两个都使用原始类型的示例类之间没有明显的区别。我通常也使用原始类型。

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

谢谢。

4

1 回答 1

6

DataStreams用于基本类型的 I/O ,如int、等。floatdouble

ObjectStreams用于对象的 I/O 。

如果您知道要显式使用原始类型,请使用,否则使用实现DataInput 接口ObjectInput 接口DataStreams的更通用的,以便可以使用原始类型和对象。ObjectStreams

于 2013-09-02T20:52:46.767 回答