I have to do a lab for my class in java and it involves the following:
The purpose of this lab is to better prepare you for your next visit to the Ohio Renaissance Festival this coming fall… you HAVE already been there before, HAVEN’T YOU? You will create a program to randomly create Shakespearian insults. The input to this is a file named insult.txt. The format looks like this:



artless base-court apple-john

bawdy bat-fowling baggage

beslubbering beef-witted barnacle

bootless beetle-headed bladder

churlish boil-brained boar-pig

cockered clapper-clawed bugbear

clouted clay-brained bum-bailey

craven common-kissing canker-blossom

currish crook-pated clack-dish

dankish dismal-dreaming clotpole



Create an object class that will open the file name passed in the constructor call, read one line at a time into a string and then use the StringTokenizer class to break the line into three words, the first word going into one Vector, the second word going into a second Vector and the last word into a third Vector, all located in this class object call cat. If, for example, you had Vectors a, b and c, a would hold the string “artless b0] would hold the string “base-court” d c0] would hold the string “apple-john”. This will all be done in the constructor for class cat. There will be one more object method in cat… get(), which will randomly Vectorsult by randomly gathering one word from each of the three Vectors. Some examples:



dankish sheep-biting death-token

churlish rude-growing canker-blossom

mangled hedge-born clotpole

spongy idle-headed mumble-news

mewling motley-minded joithead

qualling rough-hewn gudgeon

Notice that a space has been added between the first and second and between the second and third words in the phrase. Please add the word Thou in front of the whole mess to produce the following output:



Thou craven boil-brained clack-dish



Add a main() method to this object class. This will also have a menu with two optons, one to display one insult and one to exit. Formatting is your choice. I have inspected the entire insult.txt file and found nothing that should be upsetting to a 21st century college student. Feel free, however, delete any lines in the file that you deem inappropriate. You must keep at least 20 lines of the file. Please do NOT alter any lines in the file. I do not want anyone offended when they run your program as part of the grading process.



I have provided information on the use of the random function and text file input in class. This and the StringTokenizer class reference will give you sufficient information to generate the arrays of words from which you will build the insult.



You will need the following import statement in your application:

import java.util.*;
This is the outline that I am supposed to follow, or best to do the program.

Code:
//import statements
public class cat  
{
		// Variables
		//Constructor will take filename as input
		public cat()
		{
			//use a loop to read all the lines in the file
			   //use StreamTokenizer and add the 3 words to 3 different vectors
		}
		 
		public String get()
		{
			//This method will use the random number generation and the 		//elementAt methods to get a random word from the vector
		}
		public static void main (String[] args) 
		{
			//In this method, use a loop to print a menu and accept the user input
			//call the methods depending on the user input
		}//End of main
}//End of class
And this is my code so far:
Code:
//import statements
import java.io.* ;
import java.util.*;

public class cat
{
        //Variables
        BufferedReader in;
        //Constructor will take filename as input

     public cat()
      {
        //use loop to read all the lines in the file
        try
         {
           in = new BufferedReader(new FileReader("insult.txt"));
             String str;
             int noOfLines = 0;
             while (true)
              {
                str = in.readLine();
                if(str == null)
                 {
                  break;
                 }
                else
                 {
                  System.out.println(str);
                   noOfLines++;
                 }
              }//END while
        
               in.close();   
        }// END try
         catch (IOException e) {}
      
        //use StreamTokenizer and add the 3 words to 3 different vectors
                  
        String s = "Computer programming fundamentals";
        String str1,str2,str3;
        StringTokenizer a = new StringTokenizer(s);
        str1 = a.nextToken();
        str2 = a.nextToken();
        str3 = a.nextToken();
        System.out.println(str1 + " and " + str2 + " " + str3);
      }//END cat

     public String get()
      {
        //This method will use the random number generation and the
        //elementAt methods to get a random word from the vector
      }

     public static void main (String[] args)
      {
        cat a = new cat();
        //In main method, use a loop to print a menu and accept usr input

        do
         {
         System.out.println("Enter 1 to display an insult");
         System.out.println("Enter 2 to Exit");
         System.out.print("Enter Choice: ");
         int choice = MyInput.readInt();
          if (choice == 1)
                //DONT KNOW how to call constructor here
          else
                break;
        } while (true);
        //call the methods dependong on the user input

      }//End main


} //End of Class
My problem is that I don't know what to do next. I don't know how to do the radomizing of the strings. And I also am a bit lost in vectors. Will somone please take a look at this code and let me know if they can give any suggestions. Thank you.