skey.getEncoded()
getEncoded
method returns a byte array. You cannot just create a String from byte array, most of the bytes would represent non-printable characters.
What you ask for is Base64 encoding - it is a way to represent binary data as printable character.
You can use the default Java Base64 encoder
https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html to encode and decode binary data.
String encodedKey = Base64.getEncoder().encodeToString(skey.getEncoded());
There are other encoder implementations used as well, such as commons-codec
Please note - in crypto all primitives and operations (keys, encryption, digest, signing, ..) are working on top of byte arrays, encoding is used only to represent data as printable string