我需要写入和读取文件对象。 我如何使用缓冲区来做到这一点? 当我像这样使用它时,它只将最后一个对象写入文件。
OutputStream file = new FileOutputStream(DRB );
OutputStream buffer = new BufferedOutputStream( file );
ObjectOutput out = new ObjectOutputStream( buffer );
try{
out.writeObject(e1);
}
finally
{
buffer.flush();
out.close();
}
答案 0 :(得分:3)
要附加到ObjectOutputStream,我只看到两个选项
答案 1 :(得分:0)
您使用的对象e1必须是序列化类。
这是唯一的标准。
答案 2 :(得分:0)
您可以拥有要编写的对象列表。然后,您可以编写此列表。
答案 3 :(得分:0)
请参阅下面的代码。希望这能解决你的问题:
package com.shineed.io;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;
public class Deserializer{
public static void main (String args[]) {
Deserializer deserializer = new Deserializer();
Customer customer = deserializer.deserialzeCustomer();
System.out.println(customer);
}
public Customer deserialzeCustomer(){
Customer customer;
try{
FileInputStream fin = new FileInputStream("c:\\customer.txt");
ObjectInputStream ois = new ObjectInputStream(fin);
customer = (Customer) ois.readObject();
ois.close();
return customer;
}catch(Exception e){
e.printStackTrace();
return null;
}
}
}
另见以下Customer类:
package com.shineed.io;
import java.io.Serializable;
public class Customer implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private String adress;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAdress() {
return adress;
}
public void setAdress(String adress) {
this.adress = adress;
}
}