import java.io.*;
class TextFilesLogics
{   void create(String fileName)throws IOException
    {   FileWriter fw=new FileWriter(fileName,false);  BufferedWriter bw=new BufferedWriter(fw); PrintWriter pw=new PrintWriter(bw);
        String names[]={"Charles","Ada","Byron","Bill","Steve"};
        for(int i=0; i<names.length; i++)
        {   pw.println(names[i]);
        }
        pw.close();bw.close();fw.close();
    }//create 
    void display(String fileName)throws IOException
    {   FileReader fr=new FileReader(fileName);  
          BufferedReader br=new BufferedReader(fr);
        String name;
        while((name=br.readLine())!=null)
        {   System.out.println("Entry : "+name);
        }
        System.out.println("--end--");
        br.close();fr.close();
    }//display      
void copy(String file1, String file2)throws IOException
    {    FileReader fr=new FileReader(file1);
         BufferedReader br=new BufferedReader(fr);
         FileWriter fw=new FileWriter(file2,false);
        BufferedWriter bw=new BufferedWriter(fw);
        PrintWriter pw=new PrintWriter(bw);                 
        String name;
        while((name=br.readLine())!=null) 
 	pw.println(name);
        br.close();fr.close();
        pw.close();bw.close();fw.close();
    }//copy  
    void delete(String fileName, String name2delete)throws IOException
    {    FileReader fr=new FileReader(fileName);  BufferedReader br=new BufferedReader(fr); FileWriter fw=new FileWriter("TEMP.DAT",false);
        BufferedWriter bw=new BufferedWriter(fw);  PrintWriter pw=new PrintWriter(bw);                 
        String name;
        while((name=br.readLine())!=null)
        {   if(!name.equalsIgnoreCase(name2delete))
                pw.println(name);
        }
        br.close();fr.close();
        pw.close();bw.close();fw.close();
        copy("TEMP.DAT","A.DAT");
    }//delete - NOTE use counters to work with record numbers    
    void insert(String fileName, String name2insert, String after)throws IOException
    {    FileReader fr=new FileReader(fileName);  BufferedReader br=new BufferedReader(fr); FileWriter fw=new FileWriter("TEMP.DAT",false);
        BufferedWriter bw=new BufferedWriter(fw);  PrintWriter pw=new PrintWriter(bw);                 
        String name;
        while((name=br.readLine())!=null)
        {   pw.println(name);
            if(name.equalsIgnoreCase(after))
            {   pw.println(name2insert);
            }//put before pw.println(name) to insert before
        }
        br.close();fr.close();
        pw.close();bw.close();fw.close();
        copy("TEMP.DAT","A.DAT");
    }//insert - NOTE Use FW with true to insert at end
    void edit(String fileName, String oldName, String newName)throws IOException
    {    FileReader fr=new FileReader(fileName);  BufferedReader br=new BufferedReader(fr); FileWriter fw=new FileWriter("TEMP.DAT",false);
        BufferedWriter bw=new BufferedWriter(fw);  PrintWriter pw=new PrintWriter(bw);                 
        String name;
        while((name=br.readLine())!=null)
        {   if(name.equalsIgnoreCase(oldName))
            {   name=newName;
            }
            pw.println(name);
        }
        br.close();fr.close();
        pw.close();bw.close();fw.close();
        copy("TEMP.DAT","A.DAT");
    }//edit 
    public static void main(String args[])throws IOException
    {   TextFilesLogics obj=new TextFilesLogics();
    }//main
}//Class




