public static boolean compare(InputStream a, InputStream b) throws IOException
   {
       BufferedInputStream ba=a instanceof BufferedInputStream ? (BufferedInputStream)a : new BufferedInputStream(a);
       BufferedInputStream bb=b instanceof BufferedInputStream ? (BufferedInputStream)b : new BufferedInputStream(b);
       int x,y;
       do
       {
           x=ba.read();
           y=bb.read();
       }
       while ((x!=-1) && (y!=-1) && (x==y));
           return a==b;
   }
   public static boolean compare(File f1, File f2) throws IOException
   {
       if (f1.length()!=f2.length())
           return false;
       return compare(new FileInputStream(f1), new FileInputStream(f2));
   }