由于CLDC不支持浮点数据,因此DataInput和DataOutput接口类只提供了对boolean、char、int、long和short型数据的读写操作。
DataInputStream、DataOutputStream类在J2SE中是从FilerInputStream和FilerOutputStream继承来的。CLDC中FilerInputStream和FilerOutputStream被省掉了,所以DataInputStream和DataOutputStream直接成为了InputStream和OutputStream的子类。DataInputStream类不能直接构造,要通过其他方法获得。例如,通过javax.microedition.io.Connector中的openDataInputStream方法,这是CLDC通用连接框架(GCF)中从网络获取数据流的最长用的方法。而DataOutputStream类可以直接构造,也可以通过如javax.microedition.io.Connector中的openDataOutputStream等方法获得。
Reader和Writer类从java.lang.Object继承,基本上与J2SE区别不大。它们的作用是提供有限的国际化支持。J2SE中这是通过Reader和Writer对象实现的,而CLDC中使用了InputStream和OutputStream来完成同样的功能。
InputStreamReader类用于把8位的输入数据流转化成unicode码。然而,在CLDC规范中仅要求设备支持自身默认的编码格式,其他的编码格式可以有选择的支持。CLDC也不提供可以在运行时把应用程序的编码自动转成设备默认编码格式的功能。系统支持的编码格式可以从系统属性microedition.encoding中获得。如果系统不支持指定的编码,会抛出UnsupportedEncodingException异常。需要注意的是,InputStreamReader类支持InputStream类中的mark()和reset()方法;而J2SE中的getEncoding()方法被去掉了。