Scanner sc = new Scanner(System.in); String nom = sc.next();
Par défaut, next()
produit une chaîne de caractères, mais il existe
également nextInt()
, nextDouble()
, etc.
Note : Il faut utiliser
nextLine()
après avoir utilisénext()
si on veut utiliser le scanner pour lire d'autres données par la suite.
public void copie(File fichier1, File fichier2) throws IOException { FileInputStream input = null; FileOutputStream output = null; try { input = new FileInputStream(fichier1); output = new FileOutputStream(fichier2); byte[] buf = new byte[1024]; int taille; while ((taille = input.read(buf)) > 0) { output.write(buf, 0, taille); } } catch (Exception e) { e.printStackTrace(); } finally { input.close(); output.close(); } }
Permet d'obtenir une représentation au format texte d'un objet stocké en mémoire.
transient
sur tous les attributs qui ne doivent
pas être sérialisés.serialVersionUID
qui est un attribut
static final, de type long
, qui est soit généré par Eclipse, soit qui a
une valeur random qui doit être changée dès que des modifications sont
faites sur la classe au niveau ses attributs ou de la gestion de leur
valeur.Exemple :
class Personne implements Serializable { private static final long serialVersionUID = 42L; private String nom; private String prenom; private Date naissance; transient private int age; // ... }
Ensuite, pour enregistrer l'objet dans un fichier, il faut une instance de
ObjectOutputStream
(basé sur un FileOutputStream
) et utiliser sa méthode
writeObject
:
Personne mouloud = new Personne( "Mouloud", "Dupont", new Date(12, 12, 1996) ); ObjectOutputStream output = new ObjectOutputStream( new FileOutputStream(new File("mouloud.txt")) ); output.writeObject(mouloud); output.close();
Par défaut, il suffit simplement d'implémenter l'interface Cloneable
sur les objets qui doivent pouvoir être clonés.
class Ordinateur implements Cloneable { }
Si la classe possède des attributs ayant un type non natif, il faut
implémenter l'interface sur ces éléments et redéfinir la méthode
clone
de la classe :
class Personne implements Cloneable { } // ... class Ordinateur implements Cloneable { public Personne proprio; @Override protected Object clone() throws CloneNotSupportedException { Ordinateur ordi = (Ordinateur)super.clone(); ordi.proprio = (Personne)proprio.clone(); return ordi; } }