/**
   * O método readObject retorna o objeto em que o ponteiro do arquivo está posicionado. O método
   * dispara a seguinte exceção:
   *
   * @exception IOException caso não seja possível recuperar o objeto do arquivo.
   * @return um <code>Despesa</code> com os dados lidos do arquivo.
   */
  @Override
  public Despesa readObject() throws IOException {
    Despesa despesa = new Despesa();

    despesa.setCodigo(arquivoBinario.readInt());

    despesa.setCodigoCategoria(arquivoBinario.readInt());

    despesa.setCodigoPagamento(arquivoBinario.readInt());

    Calendar calDes = Calendar.getInstance();
    calDes.setTimeInMillis(arquivoBinario.readLong());
    despesa.setDataDespesa(calDes);

    calDes.setTimeInMillis(arquivoBinario.readLong());
    despesa.setDataPagamento(calDes);

    despesa.setDescricao(readString(40, true));

    despesa.setValorDespesa(arquivoBinario.readDouble());

    despesa.setNumeroParcelas(arquivoBinario.readInt());

    despesa.setNumeroCheque(readString(20, true));

    return despesa;
  } // readObject()