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(); } //////////////////////////////////////////////////////////// 通过对以上代码的修改,我们就可以完成一个数据输入与输出的例子。修改后的代码及结果如下: 结果抛出异常并非错误,只是已经读到文件的末尾了