Outputstream

Bom dia estou a criar um programa e depareime c o seguinte problema: a funçao é a seguinte:

public static void loadPrograma() {
if (fProgramFileChooser == null) {
fProgramFileChooser
= new JFileChooser(System.getProperty(“user.dir”));
fProgramFileChooser.setDialogTitle(“Escolha um Programa para abrir”);
ExampleFileFilter filter = new ExampleFileFilter();
filter.addExtension(“txt”);
filter.setDescription(“Ficheiros Programa Karel”);
fProgramFileChooser.setFileFilter(filter);

	}

	int returnVal = fProgramFileChooser.showOpenDialog(Aluno.jFrame);
	if(returnVal == JFileChooser.APPROVE_OPTION) {
	    loadPrograma(fProgramFileChooser.getSelectedFile());
	}
    }

    public static void loadPrograma(File f) {
	try {
		String fileName = fProgramFileChooser.getName(f);
		System.out.println(f);
		Aluno.EditorProgramaTextArea.setText("");
		try {
			BufferedReader inStream =			// Cria e abre a stream
					new BufferedReader(new FileReader(fileName));
			String linha = inStream.readLine(); // Le uma linha
			while (linha != null) {             // Enquanto existe mais texto
				Aluno.EditorProgramaTextArea.append(linha + "\n");		// mostra uma linha
				linha = inStream.readLine();    // Le proxima linha
			}
			inStream.close();                   // Fecha a stream
		} catch (FileNotFoundException e) {
			Aluno.EditorProgramaTextArea.setText("IOerror: Ficheiro nao encontrado: " + fileName + "\n");
			e.printStackTrace();
		} catch (IOException e) {
			Aluno.EditorProgramaTextArea.setText("IOerrorR: " + e.getMessage() + "\n");
			e.printStackTrace();
		}
	    loadPrograma(new FileInputStream(f));

	    
	} catch (FileNotFoundException e) {
	    e.printStackTrace();
	}
    }

public static void loadPrograma(InputStream is) {
try {

	    ObjectInputStream in = new ObjectInputStream(is);
	    Program prog = (Program) in.readObject();
	    in.close();
	    fRobot.setProgram(prog);
	    
	   
	    
	} catch (Exception e) {
	    e.printStackTrace();
	}
    }

O programa entra dentro do try da "loadPrograma(InputStream is) " mas não passa do comando “ObjectInputStream in = new ObjectInputStream(is);” dando o seguinte erro:

java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at Cliente.Programa.loadPrograma(Aluno.java:1811)
at Cliente.Programa.loadPrograma(Aluno.java:1800)
at Cliente.Programa.loadPrograma(Aluno.java:1775)
at Cliente.Aluno$4.actionPerformed(Aluno.java:672)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Será que alguem me pode ajudar é mesmo muito urgente.
Obrigado