private static Reader bomCheck(InputStream in) throws IOException {
   UnicodeBOMInputStream bomStream = new UnicodeBOMInputStream(in);
   if (bomStream.getBOM() != UnicodeBOMInputStream.BOM.NONE) {
     return new BufferedReader(new InputStreamReader(bomStream.skipBOM()));
   } else {
     return new BufferedReader(new InputStreamReader(bomStream));
   }
 }
  private static Reader bomCheck(File fromPath) throws IOException {
    UnicodeBOMInputStream bomStream = new UnicodeBOMInputStream(new FileInputStream(fromPath));
    if (bomStream.getBOM() != UnicodeBOMInputStream.BOM.NONE) {
      return new BufferedReader(new InputStreamReader(bomStream.skipBOM()));
    } else {
      return new BufferedReader(new InputStreamReader(bomStream));
    }

    /*
    StreamSource bomcheck = new StreamSource(new FileReader(fromPath));
    Reader reader = new BufferedReader(bomcheck.getReader());
    try {
      removeBOM(reader);
      return reader;
    }
    catch (Exception e) {
      throw new IOException("Cannot remove byte-order-mark from XML file");
    }
    */
  }