package com.hphoto.bean; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.apache.hadoop.io.Writable; import com.drew.metadata.Directory; public class Exif implements Writable{ private Directory director = null; public Exif(){} public Exif(Directory director){ this.director = director; } //inherit javadoc public void readFields(DataInput in) throws IOException { int length = in.readInt(); byte [] bytes = new byte[length]; in.readFully(bytes); ByteArrayInputStream bi = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bi); try { director = (Directory) ois.readObject(); } catch (ClassNotFoundException e) { throw new IOException(e.getMessage()); }finally{ bi.close(); ois.close(); } } //inherit javadoc public void write(DataOutput out) throws IOException { ByteArrayOutputStream bot = new ByteArrayOutputStream(); ObjectOutputStream os = new ObjectOutputStream(bot); os.writeObject(director); os.flush(); out.writeInt(bot.size()); out.write(bot.toByteArray()); os.close(); } public Directory getDirector() { return director; } public void setDirector(Directory director) { this.director = director; } }