[英]how to use buffer to read and write java objects
我需要写入和读取对象到文件。 我如何使用缓冲区? 当我那样使用它时,它只会将最后一个对象写入文件。
OutputStream file = new FileOutputStream(DRB );
OutputStream buffer = new BufferedOutputStream( file );
ObjectOutput out = new ObjectOutputStream( buffer );
try{
out.writeObject(e1);
}
finally
{
buffer.flush();
out.close();
}
要追加到ObjectOutputStream,只有两个选项,如我所见
您使用的e1对象必须是序列化的类。
那是唯一的标准。
您可以具有要编写的对象列表。 然后,您可以编写此列表。
请参见下面的代码。 希望这能解决您的问题:
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.