博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataInputStream和DataOutputStream
阅读量:7238 次
发布时间:2019-06-29

本文共 1623 字,大约阅读时间需要 5 分钟。

1.有时没有必要存储整个对象的信息,而只是要存储一个对象的成员数据,成员数据的类型假设都是Java的基本数据类型,这样的需求不必使用到与Object输入、输出相关的流对象,可以使用DataInputStream、DataOutputStream来写入或读出数据。下面是一个例子:

Java代码
package ysu.hxy;
public class Member {
private String name;
private int age;
public Member() {
}
public Member(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
打算将Member类实例的成员数据写入文件中,并打算在读入文件数据后,将这些数据还原为Member对象。下面的代码简单示范了如何实现这个需求。
Java代码
package ysu.hxy;
import .*;
public class DataStreamDemo
{
public static void main(String[] args)
{
Member[] members = {new Member("Justin",90),
new Member("momor",95),
new Member("Bush",88)};
try
{
DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream(args[0]));
for(Member member:members)
{
//写入UTF字符串
dataOutputStream.writeUTF(member.getName());
//写入int数据
dataOutputStream.writeInt(member.getAge());
}
//所有数据至目的地
dataOutputStream.flush();
//关闭流
dataOutputStream.close();
DataInputStream dataInputStream = new DataInputStream(new FileInputStream(args[0]));
//读出数据并还原为对象
for(int i=0;i<members.length;i++)
{
//读出UTF字符串
String name = dataInputStream.readUTF();
//读出int数据
int score = dataInputStream.readInt();
members[i] = new Member(name,score);
}
//关闭流
dataInputStream.close();
//显示还原后的数据
for(Member member : members)
{
System.out.printf("%s\t%d%n",member.getName(),member.getAge());
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
在从文件读出数据时,不用费心地自行判断读入字符串时或读入int类型时何时将停止,使用对应的readUTF()和readInt()方法就可以正确地读入完整的类型数据。

转载地址:http://kbwbm.baihongyu.com/

你可能感兴趣的文章
DELL软件:像胶水一样具有黏性
查看>>
社交网站存在七大安全风险 可能成为用户隐私泄露重灾区
查看>>
C# 线程手册 第二章 .NET 中的线程
查看>>
Django实战(4):scaffold生成物分析
查看>>
复习一下Java中继承关系的类的初始化顺序
查看>>
mysql 导出查询结果到文件
查看>>
Windows Server 2008 R2安装Sql Server 2008 R2企业版出现错误:Could not open key
查看>>
测试过程
查看>>
修改默认的ajaxStart, ajaxStop 显示loading
查看>>
互联网创业的准备——web server:apache、nginx、lighttpd与php module、fastcgi
查看>>
HDU 3853 LOOPS(概率DP)
查看>>
在Android上使用XML
查看>>
异步消息的传递-回调机制(转)
查看>>
【OpenCV学习】图像的形态处理学
查看>>
深入学习GridBagLayout
查看>>
memcache实战之三 :客户端 enyim.com Memcached Client 的安装与调试以及实例,2012年下载地址...
查看>>
centos下安装tomcat
查看>>
Notification与NotificationManager
查看>>
Qt之布局管理--(2)多文档的布局和焦点
查看>>
go-tour练习解答
查看>>