ObjectInputStream
大学のプロジェクトで使用する方法を探しています。たくさんのことを見つけましたが、なぜ成功できないのかわかりません。悪いことに、私はますます多くの警告を受けています。
ここに私の3つのクラスがあります:
public class Contact implements Comparable<Contact>
{
private String nom;
private String prenom;
private int numTel;
private static int nbContacts;
private int numContact;
public Contact(String nom, int tel) //Constructeur nom et numero
{
System.out.println(this.numTel);
this.numTel = tel;
System.out.println(this.numTel);
this.nom = nom;
this.numContact=++nbContacts;
}
public Contact(String nom) //Constructeur Nom
{
this.nom = nom;
this.numContact=++nbContacts;
}
public Contact(String nom, String prenom, int tel) //Constructeur Nom, prenom, numero
{
this.numTel = tel;
this.nom = nom;
this.prenom = prenom;
this.numContact=++nbContacts;
}
public String getNom()
{
return this.nom;
}
public String getPrenom()
{
return this.prenom;
}
public int getTelephone()
{
return this.numTel;
}
public int getNumContact()
{
return this.numContact;
}
public void setNom(String nom)
{
this.nom = nom;
}
public void setNumTelephone(int num)
{
this.numTel = num;
}
public boolean equals(Contact contact)
{
if(!this.nom.equals(contact.getNom()))
{
return false;
}
if(this.numTel!=contact.getTelephone())
{
return false;
}
return true;
}
public int compareTo(Contact contact)
{
return (Integer.valueOf(this.nom) - Integer.valueOf(contact.getNom()));
}
public String toString()
{
String s = this.numContact + ") ";
s+= String.format ( "%-10s", "NOM : ") + this.nom;
if(this.prenom != null)
{
s+=" | " + String.format ( "%-10s", "PRENOM : " ) + this.prenom ;
}
if(this.numTel != 0)
{
s+= " : " + this.numTel;
}
s += "\n";
System.out.println(this.nom);
return s;
}
}
次
import java.util.ArrayList;
import java.util.List;
import java.io.*;
import java.util.Collections;
public class Repertoire
{
private ArrayList<Contact>alContact;
public Repertoire()
{
alContact = new ArrayList<Contact>();
this.getData();
}
public String toString()
{
String s = "";
for ( int cpt = 0; cpt < alContact.size(); cpt++ )
{
s += alContact.get(cpt).toString() + "\n";
}
return s;
}
public void addContact(String nom, int tel) //Constructeur nom et numero
{
alContact.add(new Contact(nom, tel));
this.sauvegarder();
}
public void addContact(String nom) //Constructeur Nom
{
alContact.add(new Contact(nom));
this.sauvegarder();
}
public void addContact(String nom, String prenom, int tel) //Constructeur Nom, prenom, numero
{
alContact.add(new Contact(nom, prenom, tel));
this.sauvegarder();
}
// Permet d'enregistrer dans un fichier .dat les éléments du répertoire
private void sauvegarder()
{
try
{
ObjectOutputStream out = new ObjectOutputStream ( new FileOutputStream ("Rep.txt") );
out.writeObject ( alContact );
}
catch ( Exception e ) {}
}
public void getData()
{
FileInputStream fis = null;
ObjectInputStream in = null;
try
{
fis = new FileInputStream("~/Rep.txt");
in = new ObjectInputStream(fis);
alContact = (ArrayList) in.readObject();
in.close();
}
catch (IOException ex)
{
System.out.println("Bordel");
}
catch (ClassNotFoundException ex)
{
System.out.println("Gros Bordel");
}
}
// Permet de recuperer les donnée dans un fichier txt
private boolean charger()
{
try
{
System.out.println("Dedans");
ObjectInputStream in = new ObjectInputStream ( new FileInputStream ("Rep.txt"));
System.out.println("Dedans");
alContact = (ArrayList<Contact>) in.readObject();
System.out.println("Dedans");
}
catch ( Exception e )
{
System.out.println("Pas de fichier");
return false;
}
Collections.sort (alContact);
return true;
}
}
そしてただのテスト
public class Test
{
public static void main(String[] args)
{
int tel;
Repertoire rep = new Repertoire();
/*System.out.println("Entrez le numero");
tel = Clavier.lire_int();
rep.addContact("José", tel);
*/System.out.println(rep);
}
}
このプログラムは電話インデックスです。インデックスを .txt/.dat に保存しようとしましたが、プログラムに入れることができません。理解できることを願っています。