Como que eu faço para:
Eu gostaria de ler dados atraves de varios JTextField (Por exemplo: --> nome, senha, conta), e com esses dados eu colocar num vetor cada campo em cada celula do vetor, e dpois salvar esses dados em um arquivo (os meus arquivos quando eu escrevo estão sempre sobrepondo, como q eu faço pra naum sobrepor?) , teria q salvar kda campo em cada linha como no pascal , delphi? como q eu faço pra salvar blza? e dpois quando eu recomeçasse o programa eu pegaria o vetor e preencheria ele todo de novo com os dados q foram passados pra arquivo, como q eu faço?
como q eu faço?
se alguem tiver programa exemplo, por favor me passe, qualquer tipo de ajuda tah valendo, eh pra imprementar numa aplicacao q eu estou fazendo, e não sei trabalhar com arquivos e muito menos interagir arquivo com vetor em java…
Olha eu mais um amigo lendo o tutorial e mexendo um pouco chegamos ao seguinte código:
import java.io.*;
class Conta implements Serializable {
private int num;
private String pNome, uNome;
private double saldo;
public Conta(
int num, String pNome, String uNome, double saldo) {
this.num = num;
this.pNome = pNome;
this.uNome = uNome;
this.saldo = saldo;
}
public int numero()
{
return num;
}
public void print() {
System.out.println(num + ": " + pNome + " " + uNome +" -> saldo = " + saldo);
}
}
classe principal
import java.io.*;
class DataIO {
public static void main (String args []) throws
java.io.IOException, java.lang.ClassNotFoundException {
Conta vect[] = new Conta[3];
vect[0] = new Conta (1, "Caze", "Junior", 44.21);
vect[1] = new Conta (2, "Anotonio", "Marinho", 31.15);
vect[2] = new Conta (3, "Thiago", "bastos", 841.50);
String fich = "contas.txt";
//gravo
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(fich));
out.writeInt(vect.length);
for (int i=0; i<vect.length; i++) out.writeObject(vect[i]);
out.close();
//leio
ObjectInputStream in = new ObjectInputStream( new FileInputStream(fich));
Conta [] v = new Conta[in.readInt()];
for (int i=0; i< v.length; i++) v[i] = (Conta) in.readObject();
in.close();
for (int i=0; i<v.length; i++)
{
if (v[i].numero()==1)
v[i].print();
}
System.in.read();
}
}
Esse codigo funciona eh soh por pra rodar…
Por em tenho algumas dúvidas q permanecem q eu não consegui resolver…
sendo q eu to sempre sabendo tamanho do vetor, tem jeito de eu não saber quanto q vai ser o vetor? por q eu não sei quantos registros o usuario vai digitar? tem jeito de eu setar um tamanho (vetor) por exemplo 100 e o usuario digitar 3, e dpois gravar sair do programa e ele digitar a apartir da posicao 4??? como q eu faço isso?
esta sobrepondo como vcs irão perceber…
como q eu faço pra naum sobrepor? tbm levem em consideração o exemplo anterior…, como q eu faria pra todos as 3 celulas nao irem se sobrepondo…???
obrigado pela ajuda, e se possivel continuem me ajudando!!!
esse assunto eh muito interessante!!!
implementações, dicas a mais, serão sempre bem vindas!!!
O que ele ganharia com isso, Rafael? Acho que eu não entendi as vantagens aqui… além de ArrayList ser parte da API de Collections, e o fato de não ser sincronizada, claro…
Se atualmente ele esta usando um array do tipo Conta, e deseja poder adicionar/remover facilmente, porque o ArrayList nao resolveria? Qual o problema de ser do Collections e nao sync?