每当我使用HttpConnection
Class in或 in 时Java ME
,我都会使用/ class 通过远程服务器读取和写入数据。但是还有其他类,例如/可以用于相同目的。我看到了关于/类的问题。所以我想从专家那里知道这两者之间有什么区别?Android
BlackBerry
DataInputStream
DataOutputStream
InputStream
OutputStream
InputStream
OutputStream
HttpConnection
3 回答
DataInputStream
/DataOutputStream
是InputStream
/ Outputstream
。 InputStream
并且OutputStream
是您可以使用的最通用的 IO 流,它们是 Java 中所有流的基类。您只能使用它们读取和写入原始字节。DataInputStream
写入格式化的二进制数据。Bytes
您可以读取, Integer
, Double
, Float
, Short
, UTF-8 字符串以及该数据的任何混合,而不仅仅是简单的未格式化字节。DataOutputStream
除了写入这些更高级别的数据类型之外,也可以这样说。
A DataInputStream
/DataOutputStream
具有对 / 的引用InputStream
,OutputStream
它读取原始字节并将这些字节解释为前面提到的数据类型。
尽管DataInputStream
从InputStream
. 相反,最好使用 a Reader
,它将正确地将字符编码应用于底层字节流以读取数据。这就是为什么DataInputStream
/DataOutputStream
的用途有限。通常最好在进程之间交换文本数据,因为让服务器和客户端就如何解析数据达成一致是最容易的。交易二进制文件有很多必须进行的操作,以确保每个进程都在使用相同的语言。DataInputStream
如果您有两个使用/的 Java 进程,这很容易DataOutputStream
,但如果您想添加一个不是 Java 的新客户端,那么重用它会很困难。不是不可能,只是更难。
DataOutputStream只能处理基本类型。
它只能读/写原始类型和字符串。DataInput/OutputStream 通常表现更好,因为它更简单。
ObjectInput/OutputStream可以读/写任何对象类型以及原语。如果您想发送复杂的数据,它的效率较低但更易于使用。
使用 ObjectOutputStream 类,实现类的实例Serializable
可以写入输出流,并且可以使用 ObjectInputStream 读回。
我会假设Object*Stream是最佳选择,直到您知道它的性能是一个问题。
DataOutputStream确保数据以独立于平台的方式格式化
仅当您传输原始二进制数据时才使用OutputStream 。
DataOutputStream - 这是最大的好处。
两者之间没有显着的性能差异。