import java.awt.Font;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.File;

import java.util.StringTokenizer;


class FileIO extends JFrame
		 implements ActionListener {

   JLabel text, clicked;
   JButton button, clickButton;
   JPanel panel;
   JTextField textField;

   FileIO(){ //Begin Constructor
     setFont(new Font("Helvetica", Font.PLAIN, 14));
     text = new JLabel("Text to save to file:");
     clicked = new JLabel("Text retrieved from file:");

     button = new JButton("Click Me");
     button.addActionListener(this);

     clickButton = new JButton("Click Again");
     clickButton.addActionListener(this);

     textField = new JTextField(20);

     panel = new JPanel();
     panel.setLayout(new BorderLayout());
     panel.setBackground(Color.white);
     getContentPane().add(panel);
     panel.add("North", text);
     panel.add("Center", textField);
     panel.add("South", button);
   } //End Constructor

   public void actionPerformed(ActionEvent event){
     Object source = event.getSource();
//     String addtok = new String();

     if(source == button){
//        JLabel label = new JLabel();
        JTextArea label = new JTextArea();

	try{
//Write to file
		String text = textField.getText();
                byte b[] = text.getBytes();

	 	//File outputFile = new File(File.separatorChar + "home" + File.separatorChar + "monicap" + File.separatorChar + "text.txt");
	 	File outputFile = new File( "text.txt");
		FileOutputStream out = new FileOutputStream(outputFile);
		out.write(b);
		out.close();
//Read from file
                //File inputFile = new File(File.separatorChar + "home" + File.separatorChar + "monicap" + File.separatorChar + "text2.txt");
                File inputFile = new File( "net.dsc");
                FileInputStream in = new FileInputStream(inputFile);
		byte bt[] = new byte[(int)inputFile.length()];
		int i;
		i = in.read(bt);
		String s = new String(bt);

		// Add tokenizer stuff here
		//
        	StringTokenizer st =
        	new StringTokenizer(s, " ,\t\r\n");

         	while (st.hasMoreTokens()) {
            	    String token = st.nextToken();
//		    addtok = addtok+token+"\n";
            	    //System.out.println(token);
//	    	    label.setText(token);
		    label.append(token+"\n");
//	    	    label.setText(addtok);
         	}

               // label.setText(s);
                in.close();
	}catch(java.io.IOException e){
		System.out.println(e.toString());
	}
//Display text read from file
                panel.removeAll();
                panel.add("North", clicked); 
                panel.add("Center", label);
 		panel.add("South", clickButton);
                panel.validate();
                panel.repaint();
        }

	if(source == clickButton){
                panel.removeAll();
                panel.add("North", text);
		textField.setText("");
		panel.add("Center", textField);
                panel.add("South", button);
                panel.validate();
                panel.repaint();
	}
   }

   public static void main(String[] args){
        try{
                UIManager.setLookAndFeel(
                        UIManager.getCrossPlatformLookAndFeelClassName());
        }catch (Exception e) {
                System.err.println("Couldn't use the cross-platform"
                                        + "look and feel: " + e);
        }

        FileIO frame = new FileIO();
	frame.setTitle("Example");
        WindowListener l = new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                        System.exit(0);
                }
        };

        frame.addWindowListener(l);
        frame.pack();
        frame.setVisible(true);
    }
}
