/* Fichier Binaire0.java * Exemple simple et "technique" sur fichier binaire * Création d'un fichier binaire et relecture d'un tel fichier * */ import java.io.*; public class Binaire0 { static void creerBinaire(String nomACreer) throws IOException { int[] age = { 25, 40, 18, 42, 25 }, nbCafe = { 2, 0, 5, 1, 3 }; double[] taille = { 1.72, 1.59, 1.85, 1.74, 1.63 }; int nbPers = age.length; DataOutputStream aCreer = new DataOutputStream ( new FileOutputStream(nomACreer)); for (int i = 0; i < nbPers; i++) { aCreer.writeInt(age[i]); // écrire un entier en mode binaire aCreer.writeInt(nbCafe[i]); aCreer.writeDouble(taille[i]); } aCreer.close(); // fermer le fichier System.out.println("Fin de la creation de " + nomACreer); } // relire le fichier binaire des entiers static void relireBinaire(String nomALire) throws IOException { // ouvrir le fichier pour lire son contenu DataInputStream aLire = new DataInputStream ( new FileInputStream(nomALire)); System.out.println("\nOn est en train de relire " + nomALire); boolean finFichier = false ; int age = 0, cafe; double taille ; while ( ! finFichier ) { try { age = aLire.readInt(); } catch ( EOFException e ) { finFichier = true; } if (!finFichier) { cafe = aLire.readInt(); taille = aLire.readDouble(); System.out.printf ( "%5d %5d %10.2f\n", age, cafe, taille); } } aLire.close(); } public static void main (String[] args) throws IOException { creerBinaire("binaire0.bin"); // relire le fichier binaire qu'on vient de créer relireBinaire("binaire0.bin"); } } /* Exécution: --------------------Configuration: -------------------- Fin de la creation de binaire0.bin On est en train de relire binaire0.bin 25 2 1,72 40 0 1,59 18 5 1,85 42 1 1,74 25 3 1,63 Process completed. */