Simple File Handling

                      Next      Applet      Java Source

                      FileInputStream Class    FileOutputStream Class    FileWriter Class    StringTokenizer Class

import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.applet.*;

class FileOps1 {
   File1 f1;
   
   FileOps1 (File1 f1) {
      this.f1 = f1;
   }
   
   void readFromFile (String filename, String token) {
      try {
         FileInputStream fis = new FileInputStream(filename);
         BufferedReader is = new BufferedReader(new FileReader(fis.getFD()));
         StringTokenizer t = new StringTokenizer(is.readLine(), token);
         while (t.hasMoreTokens()) {
            f1.text.append (t.nextToken()+"\n");
         }
         is.close();
      }
      catch (IOException e) {
         f1.messages.setText("File "+filename+" Not Found");
      }
   }

   public void writeToFile(String filename, String token) {
      try {
         FileOutputStream fos = new FileOutputStream(filename);
         FileWriter os = new FileWriter(fos.getFD());
         String toFile = f1.text.getText();
         StringTokenizer t = new StringTokenizer(toFile, "\n");
         while (t.hasMoreTokens()) {
            os.write(t.nextToken());
            os.write(token);
         }
         os.close();
      }
      catch (IOException e) {
         f1.messages.setText("Could not write to "+filename);
      }
   }
}

public class File1 extends Applet implements ActionListener {
   JTextArea text;
   JTextField filename, messages, delimiter;
   JButton read, write;
   FileOps1 fo;
   
   public void init () {
      setLayout(new BorderLayout());
      Panel p = new Panel();
      p.setLayout(new GridLayout(2,1));
      Panel q = new Panel();
      q.setLayout(new BorderLayout());
      Panel r = new Panel();
      r.setLayout(new GridLayout(2,1));
      r.add(filename = new JTextField());
      r.add(new JLabel("Filename", JLabel.CENTER));
      q.add("Center", r);
      r = new Panel();
      r.setLayout(new GridLayout(2,1));
      r.add(delimiter = new JTextField("|"));
      r.add(new JLabel("Delim", JLabel.CENTER));
      q.add("East",r);
      p.add(q);
      q = new Panel();
      q.setLayout(new GridLayout(2,1));
      q.add(messages = new JTextField());
      q.add(new JLabel("Messages", JLabel.CENTER));
      p.add(q);
      add ("North", p);
      add ("Center", new JScrollPane(text = new JTextArea(30,30)));
      
      p = new Panel();
      p.setLayout(new GridLayout(1,3));
      p.add(read = new JButton("Read"));
      p.add(new JLabel());
      p.add(write = new JButton("Write"));
      add ("South", p);
   }
   
   public void start () {
      fo = new FileOps1(this);
      read.addActionListener(this);
      write.addActionListener(this);
   }
   
   public void actionPerformed (ActionEvent evt) {
      if (evt.getSource() == read)
         fo.readFromFile(filename.getText(), delimiter.getText());
      else
      if (evt.getSource() == write)
         fo.writeToFile(filename.getText(), delimiter.getText());
   }
}