Nueva información,  he encontrado una función que permite simplificar un poco el tema, aunque ahora en lugar del error anterior me sale otro tipo de error:
  
Código:
 public static PublicKey get(String filename)
        throws Exception {
        File f = new File(filename);
        FileInputStream fis = new FileInputStream(f);
        DataInputStream dis = new DataInputStream(fis);
        byte[] keyBytes = new byte[(int)f.length()];
        dis.readFully(keyBytes);
        dis.close();
        X509EncodedKeySpec spec =
          new X509EncodedKeySpec(keyBytes);
        KeyFactory kf = KeyFactory.getInstance("RSA");
        return kf.generatePublic(spec);
    }
  El error es: IOException: ObjectIdentifier() -- data isn't an object ID (tag = -96) 
A ver si encuentro la solución algún siglo de estos ¬¬