Java中的输入与输出流详解(4)

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());
        }
    }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0717ce79f1828b16de0c05fb901ec02e.html