Alguma alma caridosa poderia me ajudar por favor?

Seguinte, ja se esvairiram todas as minhas ideias e esforços em cima deste codigo em java, basicamente eu teria de implementar um cadastro de amigos por ex. nome, endereço e data nasc.

e isto deveria ser feito de um arquivo Menu.java que chama o pessoa.java em determinada opção.
Menu.java possuiria 1- Incluir, 2- Excluir, 3- Consultar, 4- Alterar e 5- Sair

Mas acontece que eu só consegui fazer isso no arquivo direto teste.java(Pessoa)
ele roda o menu e inclui !!! Problema não sei excluir nem Alterar, mas tudo bem… esse não é o meu maior problema, o meu maior problema é que não posso usar Banco de Dados para armazenar, tenho que usar um VETOR, ARRAY, seja o que for, isso eu consegui apenas para inclusão, mas o que me trinca os miolos é que eu vou, entro com a opção incluir, incluo quantos dados eu quiser, ele cria 1 vetor para cada pessoa, tudo bem, dai eu mando ele consultar TODOS os registros, ele exibe tranquilo, dai eu tento incluir mais 1 ou 2, PROBLEMA, todos os anteriores se perdem e não aparecem mais, só são listados os ultimos 1 ou 2 que eu adicionei!!! como eu resolvo isso ??? por favor alguem pode me dar uma luz ???
o codigo que eu utilizei é este:

import java.io.*;
import java.util.Vector;

class Pessoa {
String nome;
String endereco;
String dataNascimento;
}
class teste {

public static void main(String[] args) {
menu();
}

public static void menu() {

try {  	
	BufferedReader teclado=new BufferedReader (new InputStreamReader (System.in));
	String opcaox;
	int opcao;
	System.out.println("Digite 1 para incluir");
                            System.out.println("Digite 2 para excluir");
	System.out.println("Digite 3 para consultar");
                            System.out.println("Digite 4 para alterar");
	System.out.println("Digite 5 para sair");
	opcaox = teclado.readLine();           
	opcao = Integer.parseInt(opcaox);  	

	switch (opcao){  		
	
		case 1:
  		teste();
  		break;
  		
  		case 2:
  		//seek();
  		break;
  	
  		case 3:
  		System.exit(1);
  		break;
  	}
}
catch (Exception e){
}

}

public static void teste() {

BufferedReader IO=new BufferedReader (new InputStreamReader (System.in));
Vector pessoas = new Vector();
// armazena varias informações sobre uma pessoa
try{

while (true) {
  System.out.println("Digite o nome da pessoa a armazenar ou enter para voltar ao menu");
  String nome = IO.readLine();
  if (nome.length() == 0) {      	
    menu();        
    break;
  }
  System.out.println("Digite o endereco da pessoa");
  String endereco = IO.readLine();
  System.out.println("Digite a data de nascimento da pessoa");
  String dataNascimento = IO.readLine();
  Pessoa p = new Pessoa();
  p.nome = nome;
  p.endereco = endereco;
  p.dataNascimento = dataNascimento;
  pessoas.add(p);
        
}
// busca informações sobre pessoas através do nome     
while (true) {
  //System.out.println("Digite o nome da pessoa a buscar");
  //String chave = IO.readLine();
  //if (chave.length() == 0) {
  //  break;
  //}
  // buscar as informações sobre a pessoa

  boolean encontrado = false;
  for (int j = 0; j < pessoas.size(); j++) {
    Pessoa p = (Pessoa) pessoas.elementAt(j);
    //if (p.nome.equals(chave)) {
      System.out.println("Nome:"+p.nome);
      System.out.println("Endereco:"+p.endereco);
      System.out.println("Nascimento:"+p.dataNascimento);
      //encontrado = true;
      //break;
    //}

  
  
  if (! encontrado) {
    //System.out.println("Nome nao encontrado");
  }
  }
  teste();
}

}
catch(Exception erro){
}
}
}

Ahhhh Muito Obrigado !!!

Eu realmente não entendi seu real problema, e seu código está um tanto confuso. Seja mais claro em sua explicação e coloque seu código dentro da tah

Obrigado.
Blz !!! vou tentar ser mais claro:

Tudo o que segue abaixo é o fonte do arquivo teste.java:

import java.io.*;
import java.util.Vector;

class Pessoa {
String nome;-------------------|
String endereco;---------------| estes são os dados que desejo salvar
String dataNascimento;-------| serão varios registros destes (Amigos).
}
class teste {

public static void main(String[] args) {
menu();
}

public static void menu() {

try {
BufferedReader teclado=new BufferedReader (new InputStreamReader (System.in));
String opcaox;
int opcao;
System.out.println(“Digite 1 para incluir”);--------|
System.out.println(“Digite 2 para excluir”);-------| Este é o meu menu
System.out.println(“Digite 3 para consultar”);----| consigo ficar alternando
System.out.println(“Digite 4 para alterar”);-------| entre incluir e consultar
System.out.println(“Digite 5 para sair”);-----------|
opcaox = teclado.readLine();
opcao = Integer.parseInt(opcaox);

switch (opcao){

case 1:
teste();
break;

case 3:
//seek();
break;

case 5:
System.exit(1);
break;
}
}
catch (Exception e){
}
}

public static void teste() {

BufferedReader IO=new BufferedReader (new InputStreamReader (System.in));
Vector pessoas = new Vector();
// armazena varias informações sobre uma pessoa
try{

while (true) {
System.out.println(“Digite o nome da pessoa a armazenar ou enter para voltar ao menu”);
String nome = IO.readLine();------|Aqui eu coleto as informações
if (nome.length() == 0) {
menu();
break;
}
System.out.println(“Digite o endereco da pessoa”);
String endereco = IO.readLine();-----------|Aqui eu coleto as informações
System.out.println(“Digite a data de nascimento da pessoa”);
String dataNascimento = IO.readLine();-----|Aqui eu coleto as informações
Pessoa p = new Pessoa();
p.nome = nome;
p.endereco = endereco;
p.dataNascimento = dataNascimento;
pessoas.add§;--------------------| Aqui eu gravo tudo no Vector atual

} -----------------------------------------| e daqui ateh o fim…
// busca informações sobre pessoas através do nome
while (true) {
//System.out.println(“Digite o nome da pessoa a buscar”);
//String chave = IO.readLine();
//if (chave.length() == 0) {
// break;
//}
// buscar as informações sobre a pessoa

for (int j = 0; j < pessoas.size(); j++) {
Pessoa p = (Pessoa) pessoas.elementAt(j);

System.out.println(“Nome:”+p.nome);
System.out.println(“Endereco:”+p.endereco);
System.out.println(“Nascimento:”+p.dataNascimento);

---------------------| é a lista completa dos Amigos cadastrados…
}
}
teste();
}
}
catch(Exception erro){
}
}
}

Bem, o que acontece neste codigo, vc executa, aparece o menu, Dai vc escolhe a opção Nr. 1
Ele te pede o nome para armazenar, vc entra e ele pede o endereço e data de nascimento, ai. Lá pela quarta inserção você fica de saco cheio e volta para o menu principal e entra com a opção 3 para consultar !!!
ele lista TODOS os registros que você digitou anteriormente. Perfeito !!!
vc começa a se sentir orgulhoso de si mas vc pensa : “espere vou inserir mais 2 registros para ter certeza” Ai, vc volta para o menu principal e entra com a opção 1 novamente. e insere os DOIS benditos registros.
O PROBLEMA ocorre quando vc manda listar TODOS os registros novamente, ele so te retorna os ultimos 2 registros, ou seja os registros de antes ficam perdidos (Não aparecem mais).
Tente roda-lo e vc vai entender melhor !!!

E a segunda duvida : tem como eu separar o arquivo como no diagrama:
╔═════╗…
║Menu.java╠═╗…╔══════╗-Inclui, Exclui, Consulta, Altera
╚═════╝…╚══╣Pessoa.Java║
…╚══════╝

Descobri o que pode ter acontecido

Preste atenção onde vc está declarando e instanciando o objeto Vector pessoa. Vc está declarando dentro do método public static void teste()

public static void teste() { 

	BufferedReader IO=new BufferedReader (new InputStreamReader (System.in)); 
	Vector pessoas = new Vector(); //<=== Repare
	// armazena varias informações sobre uma pessoa 
	.
	.
	.
}

Esse objeto está sendo encarado como um objeto com escopo de método, ou seja, o objeto Vector pessoa só servirá dentro do método public static void teste(). Quando vc sai do método, o que acontece: o objeto é descartado. Toda vez que vc volta para o método public static void menu(), vc descarta esse objeto.
Para que sua aplicação funcione, vc deve declarar o objeto Vetor pessoa como um atributo da classe. Como fazer isso? Deve ser essa a sua pergunta neste momento.
Dica: Logo depois da declaração da classe, declare o objeto. Ex:

class teste { 
	Vector pessoas = new Vector(); //<=== Repare
	.
	.
	.
} // FIM DA CLASSE teste

Assim, o objeto terá não um escopo de método, mas sim, escopo de classe. Toda a sua classe vai enchergar ele.
Acho que isso resolve o seu problema!!!

Falow!!!

Muito Obrigado Wanderson !!! mesmo !!! Valew !!! vou tentar implementar e conto aqui se funcionou !!! Mas muito obrigado mesmo !!! :wink: :wink: :wink: