質問編集履歴
2
コードを修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,49 +13,32 @@
|
|
13
13
|
import java.nio.file.Paths;
|
14
14
|
import java.nio.file.Files;
|
15
15
|
|
16
|
-
case class Data(a: String, b:
|
16
|
+
case class Data(a: String, b: Int)
|
17
|
-
|
17
|
+
object Main {
|
18
|
-
def
|
18
|
+
def main(args: Array[String]): Unit = {
|
19
|
+
val arr: Array[List[Data]] = Array[List[Data]](List(Data("a", 97)))
|
20
|
+
val path = Paths.get("SerializeSample.bin")
|
21
|
+
// serialize
|
19
|
-
val oos = new ObjectOutputStream(Files.newOutputStream(
|
22
|
+
val oos = new ObjectOutputStream(Files.newOutputStream(path))
|
20
|
-
oos.writeObject(
|
23
|
+
oos.writeObject(arr)
|
21
24
|
oos.close()
|
22
|
-
}
|
23
|
-
}
|
24
|
-
|
25
|
+
// deserialize
|
25
|
-
def deserialize[A](): SerializeSample[A] = {
|
26
|
-
val ois = new ObjectInputStream(Files.newInputStream(
|
26
|
+
val ois = new ObjectInputStream(Files.newInputStream(path))
|
27
|
-
val ret = ois.readObject().asInstanceOf[
|
27
|
+
val ret = ois.readObject().asInstanceOf[Array[List[Data]]]
|
28
28
|
ois.close()
|
29
|
-
ret
|
29
|
+
println(ret.mkString(" "))
|
30
30
|
}
|
31
31
|
}
|
32
|
-
object Main {
|
33
|
-
def main(args: Array[String]): Unit = {
|
34
|
-
val d = Array(List(Data("a", "b", 1, 2, 3), Data("c", "d", 1, 2, 3)))
|
35
|
-
val s = SerializeSample[Data](d)
|
36
|
-
s.serialize
|
37
|
-
SerializeSample.deserialize[Data]()
|
38
|
-
}
|
39
|
-
}
|
40
32
|
```
|
41
33
|
```
|
42
34
|
sbt:sbt> run
|
43
|
-
[info] Compiling 1 Scala source to /home/kkkk/mnt/tmp/serializetest/sbt/target/scala-2.12/classes ...
|
44
|
-
[info] Done compiling.
|
45
|
-
[info] Packaging /home/kkkk/mnt/tmp/serializetest/sbt/target/scala-2.12/sbt_2.12-0.1.0-SNAPSHOT.jar ...
|
46
|
-
[info] Done packaging.
|
47
35
|
[info] Running Main
|
48
|
-
[error] (run-main-
|
36
|
+
[error] (run-main-13) java.lang.ArrayStoreException: scala.collection.immutable.List$SerializationProxy
|
49
37
|
[error] java.lang.ArrayStoreException: scala.collection.immutable.List$SerializationProxy
|
50
38
|
[error] at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1975)
|
51
39
|
[error] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1567)
|
52
|
-
[error] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
|
53
|
-
[error] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
|
54
|
-
[error] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
|
55
|
-
[error] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
|
56
40
|
[error] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:433)
|
57
|
-
[error] at SerializeSample$.deserialize(Main.scala:17)
|
58
|
-
[error] at Main$.main(Main.scala:
|
41
|
+
[error] at Main$.main(Main.scala:17)
|
59
42
|
[error] at Main.main(Main.scala)
|
60
43
|
[error] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
61
44
|
[error] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
|
@@ -82,4 +65,5 @@
|
|
82
65
|
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
83
66
|
[error] at java.lang.Thread.run(Thread.java:748)
|
84
67
|
[error] (Compile / run) Nonzero exit code: 1
|
68
|
+
[error] Total time: 0 s, completed 2018/02/04 15:59:19
|
85
69
|
```
|
1
OSを追記
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
scalaの
|
1
|
+
scalaのデシリアライズでエラーになる
|
body
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
scalaのバージョンは2.12.4、sbtのバージョンは1.1.0です。
|
9
|
+
OSはCentOS7です。
|
9
10
|
```scala
|
10
11
|
import java.io.ObjectOutputStream;
|
11
12
|
import java.io.ObjectInputStream;
|