package serialization;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ToFileSerializer {
private final TemporaryFolder folder;
private File file;
public ToFileSerializer(TemporaryFolder folder){
this.folder = folder;
}
public void write(Object ted) throws IOException {
file = getFile();
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(ted);
oos.close();
}
public<T> T readObject() throws IOException, ClassNotFoundException {
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
T object = (T) ois.readObject();
ois.close();
return object;
}
private File getFile() throws IOException {
return folder.newFile("serialized");
}
}