Oppure

Loading
21/07/10 13:58
crashoverride
Ciao sto sviluppando una rubrica telefonica in Java finora ho fatto 2 classi:
La classe JPhoneBook:
public class JPhoneBook {
	private String Nome;
	private int Numero;
	
	public JPhoneBook(String Nome, int Numero){
		this.Nome = Nome;
		this.Numero = Numero;
	}
	public void aggiungiContatto(){
		
	}
	
}


E la classe JMain che è quella che esegue il tutto:

import java.io.*;
public class JMain {

	public static void main(String[] args) {

		InputStreamReader In = new InputStreamReader(System.in);
		BufferedReader Input = new BufferedReader(In);
		int selezione = 0,numero;
		String Nome;
		System.out.println("Premi 1 per aggiungere un contatto");
		try{
			if(selezione == 1){
				System.out.println("Inserisci il nome del contatto");
				Nome = Input.readLine();
				System.out.println("Inserisci il numero del contatto");
				numero = Integer.parseInt(Input.readLine());
				JPhoneBook JContact = new JPhoneBook(Nome, numero);
				JContact.aggiungiContatto();
			}
		}catch(Exception E){
			System.out.println("Allert");
		}
			
	}

}


Ora come posso implementare il metodo aggiungiContatto();
Premetto che vorrei fare in modo che il tutto venga salvato e ogni volta che apro il programma ci siano i vecchi contatti :)
aaa
21/07/10 14:06
Bonny
Ma dove vuoi salvere i contatti? Data base, file di testo , file binario.....????
aaa
21/07/10 14:15
Bonny
Se usi un file binario(.dat) :

try{

FileOutputStream f = new FileOutputStream("nomefile.dat",true);// true serve per aprire il file in modalità append//
ObjectOutputStream fout = new ObjectOutputStream(f);
fout.writeObject(JContact);
f.close();

}catch(Exception e){........}
Ultima modifica effettuata da Bonny 21/07/10 14:15
aaa
21/07/10 14:22
Bonny
Postato originariamente da Bonny:

Se usi un file binario(.dat) :

try{

FileOutputStream f = new FileOutputStream("nomefile.dat",true);// true serve per aprire il file in modalità append//
ObjectOutputStream fout = new ObjectOutputStream(f);
fout.writeObject(JContact);
f.close();

}catch(Exception e){........}

Ti consiglio di studiare ilo capitolo sulla gestione dei file binari o di testo,in qualsiasi manuale di java lo trovi, ho postato un esempio pratico ma se fai copia e incolla nn serve a niente, cosi non impari un tubo:)
Ultima modifica effettuata da Bonny 21/07/10 14:25
aaa
21/07/10 15:43
crashoverride
Postato originariamente da Bonny:

Se usi un file binario(.dat) :

try{

FileOutputStream f = new FileOutputStream("nomefile.dat",true);// true serve per aprire il file in modalità append//
ObjectOutputStream fout = new ObjectOutputStream(f);
fout.writeObject(JContact);
f.close();

}catch(Exception e){........}

Si ok quello si usa per salvare ma il metodo aggiungiContatto() come lo implemento?? :-?
aaa
21/07/10 18:52
Bonny
public void AggiungiContatto(JPhoneBook contatto){//occhio al parametro formale

try{

FileOutputStream f = new FileOutputStream("nomefile.dat",true);
ObjectOutputStream fout = new ObjectOutputStream(f);

fout.writeObject(contatto);///////////

f.close();

}catch(Exception e){........}
}
Cosi, per esempio, lo inserisci nella classe JMain e invochi il metodo cosi :"AggiungiContatto();" o nella classe JPhoneBook però cambiando il parametro.
Questo lo devi decidere tu.
Ultima modifica effettuata da Bonny 21/07/10 19:19
aaa
21/07/10 20:59
crashoverride
Ho fatto in questo modo:
File JPhoneBook.java

import java.io.*;
public class JPhoneBook {
	private String Nome;
	private int Numero;
	
	public JPhoneBook(String Nome, int Numero){
		this.Nome = Nome;
		this.Numero = Numero;
	}
	public void aggiungiContatto(JPhoneBook JContact){
		try{ 

			FileOutputStream f = new FileOutputStream("nomefile.dat",true);// true serve per aprire il file in modalità append// 
			ObjectOutputStream fout = new ObjectOutputStream(f); 
			fout.writeObject(JContact.Nome + JContact.Numero); 
			f.close(); 

			}catch(Exception e){
				System.out.print("Eccezione...");
			}
			
	}
	
}
	


File JMain.java
import java.io.*;
public class JMain {

	public static void main(String[] args){

		InputStreamReader In = new InputStreamReader(System.in);
		BufferedReader Input = new BufferedReader(In);
		int selezione = 0,numero;
		String Nome;
		System.out.println("Premi 1 per aggiungere un contatto");
		try{
			selezione = Integer.parseInt(Input.readLine());
			if(selezione == 1){
				System.out.println("Inserisci il nome del contatto");
				Nome = Input.readLine();
				System.out.println("Inserisci il numero del contatto");
				numero = Integer.parseInt(Input.readLine());
				JPhoneBook JContact = new JPhoneBook(Nome, numero);
				JContact.aggiungiContatto(JContact);
			}
		}catch(Exception E){
			System.out.println("Allert");
		}
			
	}

}


Ho fatto cosi e credo sia giusto.
Però come faccio adesso a stampare il tutto ?
Xk vorrei implemetare anche il metodo LeggiContatti();
Ho cercato in google e ho provato ma ho fatto su un casino quindi se mi sai dire come fare ne sarei contento :)
Grazie ancora, sappi che è il mio primo linguaggio ed è la mia prima app seria in Java :)
Ultima modifica effettuata da crashoverride 21/07/10 22:29
aaa
22/07/10 13:50
Bonny
public void leggi(){

JPhoneBook p;
FileInputStream f = new FileOutputStream("nomefile.dat";);
ObjectOutputStream fin = new ObjectOutputStream(f);

while(true){

try{

p=(JPhoneBook) fin.readObject();//casting

System.out.println(p.nome + " " + p.numero);

}catch(EOFException e){}
}
}
aaa