`
uqortbsa
  • 浏览: 14602 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

ObjectInputStream

阅读更多
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;


public class Foo implements Serializable{
	public int x,y;
	public Foo(int x, int y){
		this.x = x;
		this.y = y;
	}
	private void writeObject(ObjectOutputStream s) throws IOException{
		s.writeInt(x);
		//s.writeInt(y);
	}
	
	private void readObject(ObjectInputStream s) throws IOException{
		if(s.available()>0){
			
			x = s.readInt();
			y = s.readInt();
		}
	}
	
	public static void main(String args[]) throws FileNotFoundException, IOException{
		Foo foo = new Foo(10,30);
		ObjectOutputStream s = new ObjectOutputStream(new FileOutputStream("my"));
		foo.writeObject(s);
		ObjectInputStream s1 = new ObjectInputStream(new FileInputStream("my"));
		foo.readObject(s1);
		System.out.println(foo.x);
		System.out.println(foo.y);
	}
}



import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;


public class Foo implements Serializable{
	public int x,y;
	public Foo(int x, int y){
		this.x = x;
		this.y = y;
	}
	private void writeObject(ObjectOutputStream s) throws IOException{
		s.writeInt(x);
		//s.writeInt(y);
	}
	
	private void readObject(ObjectInputStream s) throws IOException{
/*		if(s.available()>0){}*/
		x = s.readInt();
		y = s.readInt();
	}
	
	public static void main(String args[]) throws FileNotFoundException, IOException{
		Foo foo = new Foo(10,30);
		ObjectOutputStream s = new ObjectOutputStream(new FileOutputStream("my"));
		foo.writeObject(s);
		ObjectInputStream s1 = new ObjectInputStream(new FileInputStream("my"));
		foo.readObject(s1);
		System.out.println(foo.x);
		System.out.println(foo.y);
	}
}



Exception in thread "main" java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.java:375)
at java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:2776)
at java.io.ObjectInputStream.readInt(ObjectInputStream.java:950)
at Foo.readObject(Foo.java:23)
at Foo.main(Foo.java:32)
分享到:
评论
1 楼 gaopengxiang417 2011-11-02  
这个是由于你在写入文件以后,没有flush到文件里面,所以在读取的时候以为读取到了文件的结尾。
一般看到EOF的异常信息,一般是由于流的打开和关闭顺序不一样造成的。。。。

相关推荐

Global site tag (gtag.js) - Google Analytics