import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Process_TCPProbe_dm{
public static void main(String[] args) throws IOException {
//Extracting the port numbers from the file names passed in the arguments
String portNumber1 = args[1].substring(9, 14);
String portNumber2 = args[2].substring(9, 14);
String portNumber3 = args[3].substring(9, 14);
int i = 0;
Scanner s = new Scanner(new FileReader(args[0]));
//Initialising array of contents with length equals to number of lines in the input file
String[] contents = new String[18];
while(true)
{
if (i == 18)
break;//Skipping the last line of the file
//Replaces the whitespace with comma and stores in the string array
contents[i] = s.nextLine().replace(" ", ",");
i++;
}
BufferedWriter bw1 = new BufferedWriter(new FileWriter(args[1]));
BufferedWriter bw2 = new BufferedWriter(new FileWriter(args[2]));
BufferedWriter bw3 = new BufferedWriter(new FileWriter(args[3]));
//Iterating the array of contents using a for each loop
for(String each:contents)
{
//Writing the string to the corresponding file which matches with the portNumber
//along with a new line
if (each.contains(portNumber1))
{
bw1.write(each);
bw1.newLine();
}
else if(each.contains(portNumber2))
{
bw2.write(each);
bw2.newLine();
}
else if(each.contains(portNumber3))
{
bw3.write(each);
bw3.newLine();
}
}
//This is necessary to finally output the text from the buffer to the corresponding file
bw1.flush();
bw2.flush();
bw3.flush();
//Closing all the file reading and writing handles
bw1.close();
bw2.close();
bw3.close();
s.close();
}
}
Here is my code, however, it only reads a file the size of 19 lines. I know i could use an ArrayList
, but I'm not exactly sure how to go about it. I hope my question makes sense. If it'll help you understand better ill put the purpose of the code below.