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)etint[] 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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.