1

使用.dat_ Node_ ObjectOutputStream_从Node[]我之前使用的。

如果我能解决其中一个问题,我的问题将得到解决:

  • 将读取Object转换为对象类型Node[],或
  • 像这样读取文件readNode[]();

我不知道这个的正式名称,所以我很难找到答案。

4

1 回答 1

3

从 ObjectInputStream 返回的 Object 将具有与您最初将其写入文件时相同的类型。

但是,您必须在运行时强制转换它,因为编译器无法知道它将是什么类型。

 Object obj = stream.readObject();
 Node[] nodes = (Node[]) obj;

如果你的格式很灵活,以至于你不知道究竟会发生什么,你可以先使用 instanceof 来检查各种可能性。

 if (obj instanceof Node[]){
     // do something
 }
 else if (obj instanceof String) { 
     // do something
 }
 else {
    throw new IOException("unexpected object in data stream "+ obj);
 }
于 2012-06-21T22:42:10.207 回答