分享

DataInputStream和DataOutputStream类

 AndingZhang 2010-09-16

DataInputStream和DataOutputStream类

有时没有必要存储整个对象的信息,而只是要存储一个对象的成员数据,成员数据的类型假设都是Java的基本数据类型,这样的需求不必使用到与Object输入、输出相关的流对象,可以使用DataInputStream、DataOutputStream来写入或读出数据。下面是一个例子:
/**
 * 方法名称:
 * <br>方法的功能描述:1.将对象读取到指定路径的文件中;2.从指定路径中读取文件还原成对象
 * @param args void 返回参数名|返回参数说明
 * @throws  说明在某情况下,将发生什么异常
 * @see
 * @author 张安定
 */
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;  
    }  
   
    public static void main(String[] args) {
  // TODO Auto-generated method stub
   Member[] members = {new Member("Justin",90),  
                 new Member("momor",95),  
                 new Member("Bush",88)};  
   try 
   {  
    //1.将对象读取到指定路径的文件中;
    args = new String []{"d:/test.txt"};
    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]));  
   
    //2.读出数据并还原为对象  
    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();  
   }  
  
  }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多