[英]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.