Adloun

programmation Java (école d'ingénieur) · Chapitre 14 · Exercice de TD

Un tableau en binaire

Fichiers et flux · niveau 2

Énoncé

  • Écrire deux méthodes sauver(int[] t, Path f) et int[] charger(Path f) qui enregistrent et relisent un tableau d'entiers en binaire.
  • Sauver le tableau des carrés . Prévoir la taille du fichier, puis la vérifier.
  • Comparer avec la taille du même tableau écrit en texte, un nombre par ligne.

Corrigé


static void sauver(int[] t, Path f) throws IOException {
    try (DataOutputStream out = new DataOutputStream(new BufferedOutputStream(Files.newOutputStream(f)))) {
        out.writeInt(t.length);
        for (int x : t) out.writeInt(x);
    }
}

static int[] charger(Path f) throws IOException {
    try (DataInputStream in = new DataInputStream(new BufferedInputStream(Files.newInputStream(f)))) {
        int[] t = new int[in.readInt()];
        for (int i = 0; i < t.length; i++) t[i] = in.readInt();
        return t;
    }
}

On prévoit octets (la longueur, puis mille int).


Taille : 4004 octets, identique : true, u[999] = 998001
En texte : 6537 octets

En texte, chaque carré occupe son nombre de chiffres plus un saut de ligne : les grands carrés ont six chiffres, d'où un fichier plus gros d'environ . En contrepartie, le fichier texte se lit avec n'importe quel éditeur.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →