import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;


public class DemoObjectIO {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		int [] data = new int[10];
		
	
		for(int i=0; i < data.length; i++) 
			data[i] = i;
		
		demoObjectOutput(data);
		
		int [] input = demoObjectInput();
		
		for(int i=0; i < input.length; i++)
			System.out.println(input[i]);
	}

	private static int[] demoObjectInput() {
		File infile;
		infile = new File("objectFile.pqr");
		int [] inputData = null;
		
		FileInputStream fis;
		try {
			fis = new FileInputStream(infile);
			ObjectInputStream ois = new ObjectInputStream(fis);
			Object o = ois.readObject();
			inputData = (int []) o; //type cast as int []
		} catch (FileNotFoundException e) {
			System.out.println("File not found");
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("Problems reading file");
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			System.out.println("Class information not found");
			e.printStackTrace();
		}
		
		
		return inputData;
	}

	private static void demoObjectOutput(int[] data) {
		File outfile;
		outfile = new File("objectFile.pqr");
		try {
			FileOutputStream fos = new FileOutputStream(outfile);
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			oos.writeObject(data);
		} catch (FileNotFoundException e) {
			System.out.println("File not found");
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("Problems writing file!");
			e.printStackTrace();
		}
		
	}
}
