Working with RandomAccessFile : Files « File Input Output « Java

Working with RandomAccessFile

Working with RandomAccessFile

public class Diff {
  public static void main(String args[]) {
    RandomAccessFile fh1 = null;
    RandomAccessFile fh2 = null;
    int bufsize; // size of smallest file
    long filesize1 = -1;
    long filesize2 = -1;
    byte buffer1[]; // the two file caches
    byte buffer2[];
    // check what you get as command-line arguments
    if (args.length == 0 || args[0].equals("?")) {
      System.err.println("USAGE: java Diff <file1> <file2> | ?");
    // open file ONE for reading
    try {
      fh1 = new RandomAccessFile(args[0], "r");
      filesize1 = fh1.length();
    } catch (IOException ioErr) {
      System.err.println("Could not find " + args[0]);
    // open file TWO for reading
    try {
      fh2 = new RandomAccessFile(args[1], "r");
      filesize2 = fh2.length();
    } catch (IOException ioErr) {
      System.err.println("Could not find " + args[1]);
    if (filesize1 != filesize2) {
      System.out.println("Files differ in size !");
      System.out.println("'" + args[0] + "' is " + filesize1 + " bytes");
      System.out.println("'" + args[1] + "' is " + filesize2 + " bytes");
    // allocate two buffers large enough to hold entire files
    bufsize = (int) Math.min(filesize1, filesize2);
    buffer1 = new byte[bufsize];
    buffer2 = new byte[bufsize];
    try {
      fh1.readFully(buffer1, 0, bufsize);
      fh2.readFully(buffer2, 0, bufsize);

      for (int i = 0; i < bufsize; i++) {
        if (buffer1[i] != buffer2[i]) {
          System.out.println("Files differ at offset " + i);
    } catch (IOException ioErr) {
          .println("ERROR: An exception occurred while processing the files");
    } finally {
      try {
      } catch (IOException ignored) {


Related examples in the same category

1.Create file
2.Create a temporary file
3.Creating a Temporary File and delete it on exit
4.Create a directory (or several directories)
5.Get file size
6.Change last modified time of a file or directory
7.Construct file path
8.Create temporary file with specified extension suffix
9.Create temporary file in specified directory
10.Create new empty file
11.Compare two file paths
12.Delete a file
13.Delete file or directory
14.Deleting a Directory (an empty directory)
15.Delete file or directory when virtual machine terminates
16.Determine File or Directory
17.Determine if a file can be read
18.Determine if a file can be written
19.Determine if file or directory exists
20.Determine if File or Directory is hidden
21.Demonstrate File.
22.Moving a File or Directory to Another Directory
23.Find out the directoryFind out the directory
24.Get all path information from
25.Getting an Absolute Filename Path from a Relative Filename Path
26.Getting an Absolute Filename Path from a Relative Filename with Path
27.Getting an Absolute Filename Path from a Relative Filename parent Path
28.Get Absolute path of the file
29.Get File size in bytes
30.Get parent directory as a File object
31.Get a file last modification date
32.File.getCanonicalFile() converts a filename path to a unique canonical form suitable for comparisons.
33.Getting the Parents of a Filename Path
34.Get the parents of an absolute filename path
35.Getting and Setting the Modification Time of a File or Directory
36.Mark file or directory Read Only
37.List Filesystem roots
38.List drives
39.Listing the Directory ContentsListing the Directory Contents
40.Rename file or directory
41.Forcing Updates to a File to the Disk
42.Random FileRandom File
43.Create a directory; all ancestor directories must exist
44.Create a directory; all non-existent ancestor directories are automatically created
45.Getting the Current Working Directory
46.Change a file attribute to writable
47.Data fileData file
48.Output to a text File
49.Choose a FileChoose a File
50.Read data from text file
51.Copy File
52.Querying a File for Information
53.Get a list of files, and check if any files are missing
54.Delete a file from within Java
55.Work with temporary files in Java
56.Compare File Dates
57.Sort files base on their last modified date
58.Strings -- extract printable strings from binary file
59.Get extension, path and file nameGet extension, path and file name
60.Read file contents to string using commons-io?
61.Get all xml files by file extension
62.Get icon for file type
63.Change a file attribute to read only
64.Get file extension name
65.Search for files recursively
66.Create a human-readable file size
67.Set file attributes.
68.Format file length in string
69.Return a file with the given filename creating the necessary directories if not present.