ObjectInputStream 如何判断.dat文件结束啊??
解决方案 »
- 请教关于动态获取接口实现类通用设计方法的问题
- 请教一个加辅助线的问题
- 数组的length属性:byte[][] a; int i=a.length这里的i值应是多少?
- 兄弟们,我刚开始学java问一个简单的问题
- 讨论:JDK1.3.1和JDK1.4.1的差异
- Mina问题:为什么org.apache.mina.filter.codec.demux.MessageDecoder 不需要 dispose() 方法
- 有关java对象的问题!
- 模态对话框和非模态对话框有什么不同?
- 哪里有提供tomcat4.0的下载?
- printwriter +中文+datainputstream
- java异常
- JComboBox问题
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;import com.kevinb.io.bean.User;public class ObjectOutputStreamModel { private static void writeObjectFile(){
String sourceFile = "src/com/kevinb/io/objectStream/userFile";
File file = new File(sourceFile);
try {
FileOutputStream fiOutputStream = new FileOutputStream(file);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fiOutputStream);
//开始准备插入对象
User user1 = new User();
user1.setUserId(1);
user1.setUserName("Kevinb");
user1.setPassword("ffffff");
objectOutputStream.writeObject(user1);
User user2 = new User();
user2.setUserId(2);
user2.setUserName("Jone");
user2.setPassword("11");
objectOutputStream.writeObject(user2);
//写入结束标志方便读取(非常重要,如果不写入,在读取的时候无法定位读取结束);
objectOutputStream.writeObject(null);
//close outputStream
objectOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("对象写入成功!");
}
public static void main(String[] args) {
writeObjectFile();
}
}
{
try
{
message=reader.readObject();
}
catch(IOException e)
{
break;//这个时候程序跳出while循环,读取结束
}
}
不过用ObjectOutputStream写入对象后,接着就可以用ObjectInputStream读出了,不需要判断是否到了文件的结尾啊
in = new ObjectInputStream(new BufferedInputStream(
new FileInputStream(save)));
//vector.add((Manager) in.readObject());
System.out.println(in.readObject());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
我问下我这么写为什么只能得到最后一个数据啊