DataInputStream与DataOutputStream提供了与平台无关的数据操作。这和以前所学的输入输出流稍微有点不一样
![Java高级[7]:DataInputStream相关类的使用](http://www.52ij.com/uploads/allimg/160402/2239364X9-0.jpg)
前期准备工作(包括相关工具或所使用的原料等)
Eclipse
JDK
详细的操作方法或具体步骤
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
rices.length;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();
}
////////////////////////////////////////////////////////////
通过对以上代码的修改,我们就可以完成一个数据输入与输出的例子。修改后的代码及结果如下:
![Java高级[7]:DataInputStream相关类的使用](http://www.52ij.com/uploads/allimg/160402/22393620K-1.jpg)
![Java高级[7]:DataInputStream相关类的使用](http://www.52ij.com/uploads/allimg/160402/22393634c-2.jpg)
![Java高级[7]:DataInputStream相关类的使用](http://www.52ij.com/uploads/allimg/160402/22393B519-3.jpg)
注意事项
结果抛出异常并非错误,只是已经读到文件的末尾了
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
