View Single Post
  #1 (permalink)  
Old 04-21-2008, 06:41 AM
karthik7974 karthik7974 is offline
Member
 
Join Date: Apr 2008
Location: singapore
Posts: 7
karthik7974 is on a distinguished road
Send a message via Yahoo to karthik7974
[SOLVED] Text Parser
Hi
I am having the following code:

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.
Reply With Quote
Sponsored Links