- The FileInputStream class is a subclass of InputStream.
- The FileInputStream class allows you to read binary data sequentially from a file.
- The FileInputStream class's constructors allow you to pass either a File object or a path to a file.
public FileInputStream (String path)
public FileInputStream (File file)
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class MainClass {
public static void main(String[] args) {
boolean areFilesIdentical = true;
File file1 = new File("c:\\file1.txt");
File file2 = new File("c:\\file2.txt");
if (!file1.exists() || !file2.exists()) {
System.out.println("One or both files do not exist");
System.out.println(false);
}
System.out.println("length:" + file1.length());
if (file1.length() != file2.length()) {
System.out.println("lengths not equal");
System.out.println(false);
}
try {
FileInputStream fis1 = new FileInputStream(file1);
FileInputStream fis2 = new FileInputStream(file2);
int i1 = fis1.read();
int i2 = fis2.read();
while (i1 != -1) {
if (i1 != i2) {
areFilesIdentical = false;
break;
}
i1 = fis1.read();
i2 = fis2.read();
}
fis1.close();
fis2.close();
} catch (IOException e) {
System.out.println("IO exception");
areFilesIdentical = false;
}
System.out.println(areFilesIdentical);
}
}