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类可以处理整型、字符串类型的数据。