To write a java program that parses a text file input.txt and the output of the program is a concurrent hashmap in the specified format.The below program makes use of vector data stucture to do this.Please modify this program so that the program should use hashmap data structure for parsing and outputing.please help me.
Program.java:
Code: JAVA
import java.io.*;
import org.w3c.dom.Document;
import org.w3c.dom.*;
import java.util.*;
class ConfigLine
{
public Vector ctrlRtrList = new Vector();
public Vector grpAddr = new Vector();
public Vector srcList = new Vector();
public Vector rtrList = new Vector();
public Vector rPSpecs = new Vector();
public void readData() throws IOException
{
BufferedReader filein = getFileStream();
if (filein == null)
return;
String currentLine = null;
// Read line by line
while((currentLine = filein.readLine()) != null )
{
// Ignore comments
if (currentLine.startsWith("#"))
continue;
else
{
StringTokenizer st=new StringTokenizer(currentLine, ":");
int i=0;
while (st.hasMoreElemen())
{
String tList(st.nextElement()).toString();
++i;
switch (i)
{
case 1:
fillVector(tList,ctrlRtrList); //Fill the vector with the list values
break;
case 2:grpAddr.addElement(tList);
break;
case 3:
fillVector(tList,srcList);
break;
case 4:
fillVector(tList,rtrList);
break;
case 5:
fillVector(tList,rPSpecs);
break;
}
}
}
}
}
public void fillVector(String listStr, Vector v)
{
StringTokenizer st1=new StringTokenizer(listStr, ",");
while (st1.hasMoreElements())
{
v.addElement(st1.nextElement());
}
}
// Gets the defaults file input stream as a buffered reader
private static BufferedReader getFileStream()
{
try
{
FileReader fr = new FileReader(new File("input.txt"));
BufferedReader br = new BufferedReader(fr);
return br;
}
catch(FileNotFoundException fnfeEx)
{
System.out.println(fnfeEx.toString());
return null;
}
}
public void readVector()
{
if(ctrlRtrList.size()==0)
System.out.println("\nNo Elements\n");
else
{
System.out.println("Control Router List:");
for(int i=0;i<ctrlRtrList.size();i++)
System.out.println(ctrlRtrList.elementAt(i));
}
if(grpAddr.size()==0)
System.out.println("\nNo Elements\n");
else
{
System.out.println("Group Address:");
System.out.println(grpAddr.elementAt(0));
}
if(srcList.size()==0)
System.out.println("No Elements\n");
else
{
System.out.println("Source List:");
for(int i=0;i<srcList.size();i++)
System.out.println(srcList.elementAt(i));
}
if(rtrList.size()==0)
System.out.println("No Elements\n");
else
{
System.out.println("Router List:");
for(int i=0;i<rtrList.size();i++)
System.out.println(rtrList.elementAt(i));
}
if(rPSpecs.size()==0)
System.out.println("No Elements\n");
else
{
System.out.println("RP-Specs List:");
for(int i=0;i<rPSpecs.size();i++)
System.out.println(rPSpecs.elementAt(i));
}
}
}
class Program
{
static ConfigLine cl=new ConfigLine();
public static void main(String argv[])
{
try
{
cl.readData();
}
catch(Exception e)
{
System.out.println("Wow u'v an exception");
}
cl.readVector();
}
}
#Format:
# <CtrRtrList>:<GrpAddr>:<SrcList>:<RtrList>[:RP-spec]
10.2.32.82:239.192.0.2:10.00.5.183,10.0.6.185:10.2 .32.85,10.2.32.81,10.2.32.82:10.0.2.82,,10.2.78.42

