15.5.4 增强的多字节输出流DataOutput

通过查看Filter类的两个部分,可以发现它们都继承“InputStream”和“OutputStream”,并且在这两个子类中,没有新的方法函数,只有一些简单的“write”和“read”函数。这些函数不能处理整型、字符串型的数据。为了解决这个问题,引进了“DataInput”接口和“DataOutput”接口,同时“DataInputStream”类和“DataOutputStream”类分别实现了以上两个接口,并继承了“FilterInputStream”类和“FilterOutputStream”类。下面详细讲述“DataOutputStream”类。

DataOutputStream类的常用方法如下所示。


boolean writeBoolean(boolean v);

byte writeByte(int v);

charwriteChar(int v);

shortwriteShort(int v);

int writeInt(int v);

long writeLong(long v);

floatwriteFloat(float v);

double writeDouble(double v);


以上这些方法都用于读取基本数据类型的数据,下面还有一个方法比较特殊,可以读取“utf-8”形式的字符串。


String writeUTF(String str);


【实例15.10】下面看一个关于“DataOutputStream”类的实例。


01 import java.io.*;

02 ///创建一个文件类对象f

03 ///创建一个文件输出流对象fos,并且以f作为参数

04 ///创建一个多字节输出流对象dos,并且以fos作为参数

05 ///使用dos对象将数据写入到f中

06 public class file9

07 {

08 public static void main(String[]args)throws Exception

09 {

10 String st;

11 File f=new File("d:\1.dat");

12 FileOutputStream fos=new FileOutputStream(f);

13 DataOutputStream dos=new DataOutputStream(fos);

14 try

15 {

16 dos.writeUTF("明天要下雨了。");

17 dos.writeUTF("明天要下雨了。");

18 dos.writeUTF("明天要下雨了。");

19 dos.writeUTF("明天要下雨了。");

20 }

21 catch(Exception e)

22 {}

23 dos.close();

24 }

25 }


【代码说明】第11行在D盘下创建一个文件1.dat,第16~19行在此文件中输入数据。

【运行效果】在D盘下生成了一个1.dat文件,可以使用写字板打开此文件查看结果。

从这个程序可以看出,通过DataOutputStream类可以处理整型、字符串类型的数据。