【问题标题】:Catching IO exception while reading Object from file从文件中读取对象时捕获 IO 异常
【发布时间】:2014-01-01 20:43:45
【问题描述】:

这是我在文件中保存对象的代码

public class GestorJogo implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = 7306138323877410801L;
/**
 * 
 */

private Jogo _jogo;

public void abrir(String nomeFicheiro){
        try{
            ObjectInputStream abre = new ObjectInputStream(new FileInputStream(nomeFicheiro));
            _jogo = (Jogo) abre.readObject();
            abre.close();
            System.out.println(_jogo);
          }
          catch(IOException e) { System.out.println("io exception");}
          catch(ClassNotFoundException e){ System.out.println("no  class available");}
}

}

我得到 IO 异常而不是读取文件。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 那么例外是什么?打印出e.toString() 的值并在此处发布...
  • 非常感谢!!我忘了放一个实现可序列化的类!菜鸟错误。再次感谢!

标签: exception io


【解决方案1】:

ObjectInputStream 构造函数和readObject 都可以抛出 IO 异常。我首先设置一个断点来确定究竟是哪一行引发了异常。

还要验证nomeFicheiro 是正确的路径和文件名组合。如果它只是文件名,而不是完整路径,那可以解释发生了什么。确保路径存在且文件名位于该位置。

您似乎正在将从readObject() 返回的Object 类型转换为Jogo 类型。我不是 100% 确定,但文件及其内容是否需要正确映射到该自定义类型?我也会检查一下。

希望这会有所帮助。

【讨论】:

  • 谢谢!但是我认为一切都很好,我只是不知道为什么当我调用该方法时它会捕获 IO 异常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 2011-12-14
相关资源
最近更新 更多