私は以下の質問をします:スカラの任意の型を配列[Byte]に変換して戻す
私はプログラム内に任意の値として宣言された変数を持っています。
私はがどのように私はバイト配列にシリアライズし、バックすることができます。..バイト配列に、この値を変換したい
?私はDoubleやIntなどの他の型に関連する例を見つけましたが、Anyではありません。
私は以下の質問をします:スカラの任意の型を配列[Byte]に変換して戻す
私はプログラム内に任意の値として宣言された変数を持っています。
私はがどのように私はバイト配列にシリアライズし、バックすることができます。..バイト配列に、この値を変換したい
?私はDoubleやIntなどの他の型に関連する例を見つけましたが、Anyではありません。
これは、必要な操作を行う必要があります。これはJavaでどのように行うのかと非常に似ています。
import java.io.{ByteArrayInputStream, ByteArrayOutputStream, ObjectInputStream, ObjectOutputStream}
object Serialization extends App {
def serialise(value: Any): Array[Byte] = {
val stream: ByteArrayOutputStream = new ByteArrayOutputStream()
val oos = new ObjectOutputStream(stream)
oos.writeObject(value)
oos.close
stream.toByteArray
}
def deserialise(bytes: Array[Byte]): Any = {
val ois = new ObjectInputStream(new ByteArrayInputStream(bytes))
val value = ois.readObject
ois.close
value
}
println(deserialise(serialise("My Test")))
println(deserialise(serialise(List(1))))
println(deserialise(serialise(Map(1 -> 2))))
println(deserialise(serialise(1)))
}
ありがとうございます。私はまた、あなたの解決策との違いは何ですか? – Ectoras
def anyTypeToByteArray(value: Any): Array[Byte] = {
val valueConverted :Array[Byte] = SerializationUtils.serialize(value.isInstanceOf[Serializable])
valueConverted
}
def ByteArrayToAny(value: Array[Byte]): Any = {
val valueConverted: Any = SerializationUtils.deserialize(value)
valueConverted
}
あなたはサードパーティのライブラリを使用しています。 –
JasperMが述べたように、これはApacheのコモンズを使用しています。あなたがそれを持っていこうとするなら、実行可能な解決策もあります。 –
あなたの助けに感謝します! – Ectoras
あなたはそれが何であるかわからないとき、どのようにあなたが何かをシリアル化することができますか? –
私は同じ質問を..それはユーザーからの入力です、それはイメージ、数字、文字列..することができますし、私はそれをDBに格納することができますArray [Byte]に変換する必要があります – Ectoras
ユーザーからの入力は、すでに 'String'です。ではなぜ 'String'を格納しないのですか? –