/** * O método writeObject persiste o objeto recebido por parâmetro em arquivo. Recebe o seguinte * parâmetro: * * @param obj <code>Object</code> com o objeto a ser persistido. O método dispara as seguintes * exceções. * @exception IOException caso não seja possível persistir o objeto no arquivo. * @exception ClassCastException caso o objeto seja de um tipo diferente do que pode ser * persistido no arquivo. */ @Override public void writeObject(Object obj) throws IOException, ClassCastException { Despesa despesa; if (obj instanceof Despesa) despesa = (Despesa) obj; else throw new ClassCastException(); arquivoBinario.writeInt(despesa.getCodigo()); arquivoBinario.writeInt(despesa.getCodigoCategoria()); arquivoBinario.writeInt(despesa.getCodigoPagamento()); arquivoBinario.writeLong(despesa.getDataDespesa().getTimeInMillis()); arquivoBinario.writeLong(despesa.getDataPagamento().getTimeInMillis()); arquivoBinario.writeChars(setStringLength(despesa.getDescricao(), 40)); arquivoBinario.writeDouble(despesa.getValorDespesa()); arquivoBinario.writeInt(despesa.getNumeroParcelas()); arquivoBinario.writeChars(setStringLength(despesa.getNumeroCheque(), 20)); } // writeObject()
/** * 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()