java – DataInputStream / DataOutputStream类和InputStream / OutputStream类之间的区别

每当我在Java ME,Android或BlackBerry中使用HttpConnection Class时,我都会使用DataInputStream / DataOutputStream类进行读取和读取.在远程服务器上写入数据.但是还有其他类,如InputStream / OutputStream,可以用于相同的目的.我看到有关HttpConnection的InputStream / OutputStream类的问题.所以我想从专家那里了解到这两者之间的区别是什么?

解决方法:

DataInputStream / DataOutputStream是一个InputStream / Outputstream. InputStream和OutputStream是您可以使用的最通用的IO流,它们是Java中所有流的基类.您只能使用它们读取和写入原始字节. DataInputStream写入格式化的二进制数据.您可以读取Bytes,Integer,Double,Float,Short,UTF-8字符串以及该数据的任何混合,而不仅仅是简单的无格式字节.对于DataOutputStream也可以这么说,除了它写入这些更高级别的数据类型. DataInputStream / DataOutputStream具有对InputStream / OutputStream的引用,它读取原始字节并将这些字节解释为前面提到的数据类型.

虽然从DataInputStream读取字符串不是一个好主意,因为它对底层InputStream的字符编码做出了不可改变的假设.相反,最好使用一个能够将字符编码正确应用于底层字节流以读取数据的Reader.这就是DataInputStream / DataOutputStream的用途有限的原因.通常,最好在进程之间交换文本数据,因为最简单的方法是让服务器和客户端就如何解析数据达成一致.交易二进制文件有很多有点麻烦,必须确保每个进程使用相同的语言.如果你有两个使用DataInputStream / DataOutputStream的Java进程很容易,但是如果你想要添加一个不是Java的新客户端,你将很难重用它.并非不可能,但更难.

上一篇:java – ReadFully()有窒息的风险吗?


下一篇:Java开发框架Struts相关知识分享