|
1. General Information
Version: 1.1
Date: 24th April 2001
JavaDiff is a simple command-line utility
for comparing two files, or for recursively comparing the contents of
two directories. it also provides an API for embedding the functionality
within another Java application.
The program will attempt to report a minimal
set of line differences for ASCII files. For binary files, it will simply
report whether or not they are different.
2. Command-line Usage
java -jar JavaDiff.jar file1 file2
All differences will be reported to the
standard output stream.
2.1 Return codes
The program will return the following status
codes on exit:
Files are identical: 0
Files differ: 1
File1 not found: 2
File2 not found: 3
Unknown status: 4
Abnormal program termination: -1
3. Programmatic Usage
The utility also provides a simple API for
controlling from within another Java program.
3.1 API
The API is as follows:
package com.jj.javadiff;
public class Diff
{
public Diff();
public Diff(String first_pathname, String second_pathname);
public void Compare();
public void SetFirstFile(String pathname);
public void SetSecondFile(String pathname);
public void SetWriter(java.io.PrintWriter writer);
public int GetComparisonStatus();
final public static int COMPARISON_FILES_IDENTICAL;
final public static int COMPARISON_FILES_DIFFER;
final public static int COMPARISON_FIRST_FILE_NOT_FOUND;
final public static int COMPARISON_SECOND_FILE_NOT_FOUND;
final public static int COMPARISON_UNKNOWN;
}
3.2 Sample Code
import com.jj.javadiff.Diff;
...
try
{
// Construct the diff object
Diff diff = new Diff();
// Supply the two files or directories to compare
diff.SetFirstFile("path_to_first_file");
diff.SetSecondFile("path_to_second_file");
// Set the output stream for reporting differences
// Here we are asking for the output to go to standard out.
java.io.PrintWriter pw = new java.io.PrintWriter(System.out);
diff.SetWriter(pw);
// Perform the comparison
diff.Compare();
// Flush the output buffer
pw.flush();
pw.close();
// Get the return status
switch (diff.GetComparisonStatus())
{
case diff.COMPARISON_FILES_IDENTICAL: // The files match exactly
case diff.COMPARISON_FILES_DIFFER: // The files differ
case diff.COMPARISON_FIRST_FILE_NOT_FOUND: // The first file was not found
case diff.COMPARISON_SECOND_FILE_NOT_FOUND: // The second file was not found
case diff.COMPARISON_UNKNOWN: // The comparison status is unknown
}
}
catch (Exception e)
{
// The program terminated abnormally
}
4. Download
The following zip file contains the jar
file for JavaDiff. This should be downloaded and extracted to your local
drive.
JavaDiff_11.zip
(7 KB)
|