Hi
I am having the following code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class ReadLogFile {
/**
* @param args
*/
public ReadLogFile(){
}
private List readFile (String inputFile,String content){
List logs = new ArrayList();
try {
FileInputStream fis=new FileInputStream(inputFile);
DataInputStream dis=new DataInputStream(fis);
BufferedReader br=new BufferedReader(new InputStreamReader(dis));
String strLine;
while ((strLine = br.readLine()) != null) {
System.out.println("Line:|" +strLine);
int index;
index = strLine.indexOf(content);
System.out.println("Index:|" +index);
if (index != -1){
System.out.println("log with search string:|" +strLine+"|");
logs.add(strLine);
}else
System.out.println("line does not have serach string");
}
}catch (Exception e){
System.out.println("Exception while reading file:|" +e.getMessage());
}
return logs;
}
private void writeFile(List logs,String outputFile){
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile,true));
System.out.println("Inside write file method,list size:|" +logs.size());
for(int i=0;i<logs.size();i++){
System.out.println("Inside for loop:|" );
bw.write((String)logs.get(i));
bw.newLine();
System.out.println("file has been written successfully:|" +logs.get(i) );
}
bw.close();
}catch(Exception e){
System.out.println("Exception when writing the file:|" +e.getMessage());
}
}
public static void main(String args[]) throws Exception{
// TODO Auto-generated method stub
String inputFile = null;
String searchString = null;
String outputFile = null;
System.out.print("Enter Input File: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
inputFile = br.readLine();
System.out.print("Enter Search String: ");
BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in));
searchString = br1.readLine();
System.out.print("Enter Output File: ");
BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
outputFile = br2.readLine();
ReadLogFile logfile = new ReadLogFile();
List log = new ArrayList();
log = logfile.readFile(inputFile,searchString);
System.out.println("Reading log file completed:|");
logfile.writeFile(log,outputFile);
}
}
I need to search a string and write to new file
The string here is date
10-10-2008
Input file
Date Time Server IP Desc
---------------------------------------------------------------
10-10-2008 10:10 Server 1 xx.xx.xx.xx File Server
11-10-2008 20:10 Server 2 xx.xx.xx.xx File Server Linux
12-10-2008 22:10 Server 3 xx.xx.xx.xx File Server Win
13-10-2008 23:10 Server 4 xx.xx.xx.xx File Server aaa
OutPut File
10-10-2008 10:10 Server 1 xx.xx.xx.xx File Server
The current code will write the whole line into a new file when i give a date.
I need more than 2,3 dates to be searched and lines written to new file.
I dont know how to edit
Please help
Thanks in advance.