Java Program: Compare two text files
By Angsuman Chakraborty, Gaea News NetworkWednesday, April 29, 2009
Today while managing the comments, I got a request of this sort.
HI,
I have a small question in java.
I have two inputs , which are in two documents .I want to compare these two document values. Is it possible in Java. please let me know.thanks & Regards,
Certainly, there are ways to compare two text files in Java but the return value can be of many types.
A Java file difference utility can
- compare files character by character.
- give the number of differences between 2 files.
- ignore white space when comparing.
Our program will prompt for 2 file names (.txt) that are to be compared. Given the file names, this program will compare the two files. If any difference is there, it will print the differences and no. of differences in command prompt. If no difference is there, it will print files are equal.
import java.io.*;
import java.util.*;
public class myfilereader
{
public static void main (String[] args) throws java.io.IOException
{
//Getting the name of the files to be compared.
BufferedReader br2 = new BufferedReader (new
InputStreamReader(System.in));
System.out.println(”Enter 1st File name:”);
String str = br2.readLine();
System.out.println(”Enter 2nd File name:”);
String str1 = br2.readLine();
String s1=”";
String s2=”",s3=”",s4=”";
String y=”",z=”";
//Reading the contents of the files
BufferedReader br = new BufferedReader (new FileReader (str));
BufferedReader br1 = new BufferedReader (new FileReader (str1));
while((z=br1.readLine())!=null)
s3+=z;
while((y=br.readLine())!=null)
s1+=y;
System.out.println ();
//String tokenizing
int numTokens = 0;
StringTokenizer st = new StringTokenizer (s1);
String[] a = new String[10000];
for(int l=0;l<10000;l++)
{a[l]=”";}
int i=0;
while (st.hasMoreTokens())
{
s2 = st.nextToken();
a[i]=s2;
i++;
numTokens++;
}
int numTokens1 = 0;
StringTokenizer st1 = new StringTokenizer (s3);
String[] b = new String[10000];
for(int k=0;k<10000;k++)
{b[k]=”";}
int j=0;
while (st1.hasMoreTokens())
{
s4 = st1.nextToken();
b[j]=s4;
j++;
numTokens1++;
}
//comparing the contents of the files and printing the differences, if any.
int x=0;
for(int m=0;m<a.length;m++)
{
if(a[m].equals(b[m])){}
else
{
x++;
System.out.println(a[m] + ” — ” +b[m]);
System.out.println();}
}
System.out.println(”No. of differences : ” + x);
if(x>0){System.out.println(”Files are not equal”);}
else{System.out.println(”Files are equal. No difference found”);}
}
}
[code source: sourcecodesworld.com]
Between, if you have any query on programming, trouble shooting, computer maintenance etc, feel free to ask us. We will reply you as fasr as we can.
Tags: compare two text files, compare two text files in java, java program, Maintenance
kalyx |
Priyanka |
May 4, 2010: 11:34 pm
Hi, |
Larity |
Vivek |
December 15, 2009: 6:12 am
Is there any simple java code to compare two documents?? (without using tokens as I am new to tokens) |
faiza |
December 3, 2009: 2:35 am
how can I compare 2 text files and output the same line in php? any1? |
Sudharshan |
October 12, 2009: 9:24 am
Comparing any two files with any extension in java - techelp.in/home/?p=19 |
sindhu |
September 26, 2009: 7:01 pm
Hi, |
Amit |
July 5, 2009: 6:36 pm
hi i want a solution of one loop question by buffer reader which is as follows 1*16+2*15+3*14…….16*1 |
Kapil |
June 16, 2009: 7:35 am
Hi, How to compare two strings in java using while loop for check that if string 1 is different from 2 then loop can work wheither the condition is satisfied. |
Tulasi |
May 28, 2009: 4:29 am
Hi, How to compare few java files and produce the output to spread sheet. Regards, |
Deepa |
May 28, 2009: 4:27 am
Hi, How to compare few files and produce the output in spread sheet. Thanks in advance!!! Regards, |
Deepak |
May 17, 2009: 4:56 pm
Hello friends, |
Allen |
May 13, 2009: 1:50 am
I come across this code looking for a quick script, however, this code has a number of issues. |
kalyx