Gostaria de um pequeno exemplo, se possível de um código q solicite o nome e a idade de uma pessoa e grave isso em forma de arquivos binários…mas q tb seja possível posteriormente visualizar o q foi digitado. Estou estudando arquivos e isso me ajudaria muito na compreensão.
Valew!
Mas pq? Num pode ser texto? Vc pode serializar um objeto se quizer… Da uma pesquisa em serialização… Ja postei algo aqui no fórum uma vez… Falow!
Com certeza poderia ser texto, se o zé roela do meu professor não tivesse pedido para gravar isso em forma de árquivos binários.
[code]
import java.io.;
import java.util.;
public class Teste {
public static void main( String[] args ) {
try {
int opc = 0;
Scanner scan = new Scanner( System.in );
String nomeDoArquivo;
String nome;
int idade;
Pessoa p;
while ( opc != 3 ) {
System.out.println( "Escolha a opção: " );
System.out.println( "1 - Gravar" );
System.out.println( "2 - Ler" );
System.out.println( "3 - Sair" );
opc = scan.nextInt();
switch ( opc ) {
case 1:
System.out.println( "Entre com o nome do arquivo:" );
nomeDoArquivo = scan.next();
System.out.println( "Entre com o nome da pessoa:" );
nome = scan.next();
System.out.println( "Entre com a idade da pessoa:" );
idade = scan.nextInt();
ObjectOutputStream objOut = new ObjectOutputStream(
new FileOutputStream( new File( nomeDoArquivo ) ) );
p = new Pessoa();
p.setNome( nome );
p.setIdade( idade );
objOut.writeObject( p );
objOut.flush();
objOut.close();
System.out.println( "Arquivo gerado com sucesso!" );
break;
case 2:
System.out.println( "Entre com o nome do arquivo:" );
nomeDoArquivo = scan.next();
ObjectInputStream objInp = new ObjectInputStream(
new FileInputStream( new File( nomeDoArquivo ) ) );
p = ( Pessoa ) objInp.readObject();
System.out.println( "Nome: " + p.getNome() );
System.out.println( "Idade: " + p.getIdade() );
objInp.close();
break;
case 3:
break;
default:
System.out.println( "Opção incorreta." );
break;
}
}
} catch ( IOException exc ) {
System.out.println( "Erro" );
exc.printStackTrace();
} catch ( ClassNotFoundException exc ) {
System.out.println( "Erro" );
exc.printStackTrace();
}
}
}
class Pessoa implements Serializable {
private String nome;
private int idade;
public void setNome( String nome ) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setIdade( int idade ) {
this.idade = idade;
}
public int getIdade() {
return idade;
}
}[/code]
Não sei se a gravação de um objeto serializável é considerada com obinário… Todo caso esse é o código básico, vc pode melhorar ele.
Falow!
valew cara, com certeza já irá ajudar bastante… vou mexer nele e qquer coisa posto aqui novamente…