您的位置首页百科问答

Java高级[7]:DataInputStream相关类的使用

Java高级[7]:DataInputStream相关类的使用

的有关信息介绍如下:

Java高级[7]:DataInputStream相关类的使用

DataInputStream与DataOutputStream提供了与平台无关的数据操作。这和以前所学的输入输出流稍微有点不一样

DataOutputStream按照一定的格式输出,再通过DataInputStream以一定格式读入。由于可以得到java的各种基本类型甚至字符串,这样对得到的数据便可以方便地处理。这在通过协议传输的信息的网络上是非常适用的。

如下面的范例,需要存储以下格式数据:

价格 数量 描述

10.10 10 帽子

10.20 20 皮带

8.30 5 眼镜

实现机制为构行一个DataOutputStream,并按照一定的格式写入数据:

////////////////////////////////////////////////////////////

//将数据写入某个载体

DataOutputStream out = new DataOutputStream(new FileOutputStream("order.txt"));

//价格

double prices[]={10.10,10.20,8.30};

//数目

int[] num={10,20,5};

//描述

String desc[]={"帽子","皮带","眼镜"};

//写入数据

for(int i=0;i

out.writeDouble(prices[i]);

out.writeChar('\t');

out.writeInt(num[i]);

out.writeChar('\t');

out.writeChars(desc[i]);

out.writeChar('\n');

}

///////////////////////////////////////////////////////////

将数据以格式化读出,并在显示器上显示出来:

////////////////////////////////////////////////////////////

//将数据读出

DataInputStream in = new DataInputStream(new FileInputStream("order.txt"));

double prices;

int num;

String buffer desc;

try{

//当文本被全部读出以后会抛出EOFxception异常,中断循环

while(true){

price=in.readDouble(); //读出价格

in.readChar();//跳出tab

num=in.readInt();//读出数目

in.readChar();

char ch;

desc = new StringBuffer();

while(((ch=in.readChar())!='\n') desc.append(ch);//读取字符串

System.out.println(""价格"+ price+" 数目"+num+" 名称"+desc);

}

}catch(EOFException e){

e.printkStrace();

}

////////////////////////////////////////////////////////////

通过对以上代码的修改,我们就可以完成一个数据输入与输出的例子。修改后的代码及结果如下:

结果抛出异常并非错误,只是已经读到文件的末尾了