ObjectInputStream

  1 package Aug14.IO;
  2
  3
  4
  5 import java.io.*;
  6 import java.util.*;
  7 import java.util.Map.Entry;
  8
  9 class Student<T> implements Serializable{
 10     private T rollNo;
 11
 12     Student(T rollNo){
 13         this.rollNo=rollNo;
 14     }
 15
 16     private String Name;int age;
 17
 18     public void setRollNo(T roll){
 19         rollNo=roll;
 20     }
 21
 22     public T getRollNo(){
 23         return rollNo;
 24     }
 25
 26     public void setName(String roll){
 27         Name=roll;
 28     }
 29
 30     public String getName(){
 31         return Name;
 32     }
 33
 34     public void setAge(int roll){
 35         age=roll;
 36     }
 37
 38     public int getAge(){
 39         return age;
 40     }
 41
 42     public String toString(){
 43         return "Name:- "+getName()+" Age:- "+getAge();
 44     }
 45 }
 46
 47
 48 public  class StudDataFile {
 49
 50     private void objectWriter(Map<String, Student<Integer>> m) {
 51         try{
 52             File f=new File("D:\\Students.txt");
 53             ObjectOutputStream oos=new ObjectOutputStream(
 54                     new FileOutputStream(f,true));
 55             oos.writeObject(m);
 56             oos.flush();
 57             oos.close();
 58             System.out.println("File Writing Success");
 59         }catch(Exception e){
 60             e.printStackTrace();
 61         }
 62     }
 63
 64     private void objectReader(){
 65         try{
 66             File f=new File("D:\\Students.txt");
 67             ObjectInputStream ois=new ObjectInputStream(new FileInputStream(f));
 68
 69             Map<String, Student<Integer>> m=(Map<String, Student<Integer>>)ois.readObject();
 70
 71             Set view=m.entrySet();
 72             Iterator it=view.iterator();
 73             while(it.hasNext())
 74             {
 75                 Map.Entry<String, Student<Integer>> stud = (Entry<String, Student<Integer>>) it.next();
 76                 System.out.println("Key:- "+stud.getKey()+"\tValues:- "+stud.getValue());
 77             }
 78             ois.close();
 79         }catch(Exception e){
 80             e.printStackTrace();
 81         }
 82         System.out.println("File Reading Success");
 83     }
 84
 85     public static void main(String[] args) {
 86         Map<String, Student<Integer>> stuData=new HashMap<String, Student<Integer>>();
 87
 88         Student<Integer> s;
 89         for(int i=0; i<5; i++){
 90             s=new Student<Integer>(i+1);
 91             s.setName("Student: "+(i+1));
 92             s.setAge(20);
 93             stuData.put("st"+(i+1),s);
 94         }
 95
 96         StudDataFile sf=new StudDataFile();
 97         sf.objectWriter(stuData);
 98         sf.objectReader();
 99     }
100
101 }

ObjectInputStream

时间: 2024-08-28 01:57:38

ObjectInputStream的相关文章

序列化之Java默认序列化技术(ObjectOutputStream与ObjectInputStream)

Java默认序列化技术 主要是通过 对象输出流java.io.ObjectOutputStream 对象输入流java.io.ObjectInputStream 来实现的 package com.xingej.ser; public interface ISerializer { // 序列化,将obj序列化成字节数组 public <T> byte[] serialize(T obj); // 反序列化,将字节数组,反序列化为T public <T> T deserialize(

对象流: ObjectInputStream 和 ObjectOutputStream

/* * 1.对象流: ObjectInputStream 和 ObjectOutputStream 一对. * 1) ObjectInputStream 对象的字节输入流类, ObjectOutputStream对象的字节输出流类. * 2) 功能: 实现对象的输入/输出. (存储到文件中的是对象,从相应的文件中读取的还是对象) * 3) 注意: 对象流属于处理流,因此,使用时必须将它套接在节点流上. * * 4) 要实现对象的存盘和读取必须具备什么条件? * a) 对象对应的类必须实现一个接

ObjectInputStream怎么判断是否读到末尾

ObjectInputStream无论是读对象,还是记取int等java的基本数据类型,在判结束时,绝对既不是-1,也不是什么null. 若文件中有若干个int的数,你用DataInputStream中的readint()去读,何时判读到结尾?绝对既不是-1,也不是什么null 同样道理:若文件中有若于个Object对象,你用ObjectInputStream中的readObject()去读,何时判读到结尾?绝对既不是-1,也不是什么null 方法之一:(常用的方法)将若干个对象(数量不定)都装

serialVersionUID, ObjectInputStream与ObjectOutputStream类,Serializable接口,serialVersionUID的作用和用法

ObjectInputStream与ObjectOutputStream类所读写的对象必须实现Serializable接口,对象中的transient和static类型成员变量不会被读取和写入 Serializable其实是一个空接口 package java.io; public interface Serializable { } Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化. 什么情况下需要序列化 a)当你想把的内存中的对象写入到硬

我的Java开发学习之旅------&gt;Java使用ObjectOutputStream和ObjectInputStream序列号对象相关问题解决方法

今天用ObjectOutputStream和ObjectInputStream进行对象序列化话操作的时候,报了java.io.EOFException异常. 异常代码如下: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554) at java.io.ObjectInputStream.readObject0(ObjectInputSt

深度克隆:ObjectInputStream、ObjectOutputStream和ByteArrayOutputStream

下面一段深度克隆的源码,不甚理解,查查记录下来 bout = new ByteArrayOutputStream(); ObjectOutputStream oos = null; ObjectInputStream ois = null; oos = new ObjectOutputStream(bout); oos.writeObject(oldValue); //将指定的对象写入 ObjectOutputStream ByteArrayInputStream bin = new ByteA

JAVA对象序列化(Serializable、ObjectOutputStream、ObjectInputStream、 transient)

1)对象序列化是把一个对象变为二进制的数据流的一种方法.对象序列化后可以方便的实现对象的传输或存储. 2)如果一个类的对象想被序列化,则对象所在的类必须实现Serialilzable接口.此接口中没有定义任何方法,所以此借口是一个标识接口,表示一个类具备被序列化的能力. 3)对象被序列化后变为二进制,可以经过二进制数据流进行传输.此时必须依靠对象输出流(ObjectOutputStream)和对象输入流(ObjectInputStream). 4)在序列化中,只有属性被序列化.因为每个对象都具有

使用ObjectInputStream的readObject()方法如何判断读取到多个对象的结尾

摘自http://blog.csdn.net/fjdingsd/article/details/46765803 使用ObjectInputStream的readObject()方法如何判断读取到多个对象的结尾 import java.io.EOFException; import java.io.FileInputStream; import java.io.IOException; import java.io.ObjectInputStream; import cn.com.mybolg.

Java IO: 序列化与ObjectInputStream、ObjectOutputStream

作者:Jakob Jenkov  译者: 李璟([email protected]) 本小节会简要概括Java IO中的序列化以及涉及到的流,主要包括ObjectInputStream和ObjectOutputStream. Serializable 原文链接 如果你希望类能够序列化和反序列化,必须实现Serializable接口,就像所展示的ObjectInputStream和ObjectOutputStream例子一样. 对象序列化本身就是一个主题.Java IO系列教程主要关注流.read

Java里的IO流里的 ObjectInputStream 的读取\写入!

各位好!!我又来了!!今天遇见了一个小问题!! IO流里的对象读取总是出错!各种报错!!神烦啊!!百思不得其解啊!然后就上网百度!找了好久终于让我找到了!下面就让我来说一说! 当你用IO流里的对象流写入的时候,ObjectOutputStream会在文件中的开头和结尾进行一个标识AC/DC,ObjectInputStream会严格的根据开头和结尾来进行读取,当读取不到的时候就会进行报错!! ObjectOutputStream无法将上一次的对象的结尾的DC消除,所以千万不要用FileOutPut