Pessoal, estou com uma dúvida com o FileInput, consigo gravar os dados em um .txt tranquilamente e até lê-los. O problema é quando tento usar a herança, não consigo ler um arquivo que foi gravado na txt.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
class Pessoa {
private String nome;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return(nome);
}
}
class PessoaFisica extends Pessoa {
private String rg;
public void setRg(String rg) {
this.rg = rg;
}
public String getRg() {
return(rg);
}
}
class PessoaJuridica extends Pessoa {
private String cnpj;
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getCnpj() {
return(cnpj);
}
}
class Funcionario extends PessoaFisica {
private String cartao;
public void setCartao(String cartao) {
this.cartao = cartao;
}
public String getCartao() {
return(cartao);
}
}
meu problema está exatamente aqui:
class UsaFunc {
public static void main (String args[]) {
Funcionario funcionario = new Funcionario();
funcionario.setNome("Mateus");
funcionario.setRg("50.022.304-X");
funcionario.setCartao("000");
try {
FileOutputStream f = new FileOutputStream("funcionario.txt");
ObjectOutputStream s = new ObjectOutputStream(f);
s.writeObject(funcionario.getNome());
s.flush();
System.out.println("Correto");
}
catch (Exception erro) {
System.out.println(erro);
}
try {
FileInputStream f = new FileInputStream("funcionario.txt");
ObjectInputStream s = new ObjectInputStream(f);
Funcionario x = (Funcionario)s.readObject();
System.out.println(x);
} catch (Exception erro) {
System.out.println(erro);
}
}
}
O que coloco no lugar do x para que ele leia o arquivo? E caso tenha mais que uma informação no txt, o rg, é possível pedir que leia apenas um deles?
