4)、用快捷方式读取特定信息
我们已经知道了数据流处理的数据都是指字节或字节数组,但实际上很多时候不是这样的,它需要数据流能只能读/写各种各样的Java语言的基本数据类型。例如要读取文件中存放的300个整数值,从中读取时,希望以int为基本单位进行读取,这样可以大大节省时间。这时就需要使用DataInputStream和DataOutputStream,它们不但支持父类InputStream和OutputStream中的方法,以原有方式读写数据,同时还允许通过数据流来读写Java语言的基本数据类型,包括int、float、double和boolean等,其构造函数如下:
DataInputStream(已经建立好的输入数据流对象)
DataOutputStream(已经建立好的输出数据流对象)
它们之所以能够对这些原始类型进行操作,是因为它们有一组特定的方法。具体方法可以参考API,下面是主要方法:
DataInputStrean:
readByte() ,readLong() , readDouble() , readBoolean() , String readUTF() , readInt() ,readFloat() , readShort() , readChar().
DataOutputStream:
writeByte() ,writeLong() , writeDouble() , writeBoolean() , WriteUTF() , writeInt() ,writeChar() , writeFloat() , writeShort().
下面是一段关于这两个类的使用:
public staticvoid main(String[] args) {
int i;
try {
FileOutputStream bb = newFileOutputStream("D:\\桌面\\桌面\\安卓开发工具\\学习笔记\\test2.txt");
DataOutputStream da = newDataOutputStream(bb);
da.writeInt(12);
da.writeInt(13);
da.writeDouble(12.34534);
da.writeBoolean(true);
da.writeChars("这是Java数据流#");
bb.close();
FileInputStream aa = newFileInputStream("D:\\桌面\\桌面\\安卓开发工具\\学习笔记\\test2.txt");
DataInputStream di = newDataInputStream(aa);
System.err.println(di.readInt());
System.err.println(di.readDouble());
System.err.println(di.readBoolean());
char cc = '0';
while (true)
{
cc = di.readChar();
if (cc == '#') break;
System.err.print(cc);
}
System.err.println("\n");
aa.close();
System.out.println("运行完毕");
} catch (Exception e) {
System.err.println(e.getMessage());
}
}