Utilisation de fichiers en JAVA
0 - Prise en main
L'objectif de cette partie pratique est de maîtriser l'accès aux fichiers en java. Pour acquérir
cette maîtrise, vous aurez aussi besoin de gérer correctement les exceptions qui peuvent
être levées lors de l'accès à un fichier. Vous pouvez commencer par reprendre les
exemples donnés en cours.
Vous pouvez travailler en ligne de commande uniquement, ou avec l'aide d'Eclipse. Si vous utilisez
éclipse, pensez bien à préciser l'endroit où il place les fichiers compilés (.class) dans
votre CLASSPATH afin de pouvoir y accéder simplement depuis la ligne de commande, typiquement :
export CLASSPATH=$HOME/eclipse-workspace/Mon_Projet/bin
1 - Exercices
- tableaux dans des fichiers
- écrivez un programme qui écrit un tableau d'entiers généré aléatoirement dans un
fichier. La taille et le contenu du tableau devront tous deux être générés aléatoirement
;
- écrivez un programme qui lit deux tableaux depuis deux fichiers et qui, si les deux
tableaux font la même taille, en considérant que les tableaux sont des vecteurs, calcule
et affiche le produit scalaire des deux vecteurs ;
- même chose avec des tableaux à deux dimensions (matrices) en calculant le produit de matrices.
- manipulation de fichiers à bas niveau - en vous aidant d'ExempleCopie.java écrivez un programme qui :
- calcule la taille d’un fichier (en octets) ;
- compte le nombre de lignes d’un fichier (caractère '\n') ;
- copie un fichier dans un autre en numérotant les lignes dans le fichier de sortie (chaque ligne est précédée de son numéro) ;
- concatène deux fichier dans un fichier de sortie.
- entrées/sorties performantes - essayez plusieurs tailles de tampons pour la copie
performante et mesurez les différences de performance. Pour vous aider, vous pourrez avoir
besoin des commandes suivantes, présentées sous formes d'exemples :
- dd if=/dev/random of=Fichier.txt bs=1024 count=1024
Génère un fichier de 1Mo dont le contenu est aléatoire. Plus précisément les données sont
prises dans /dev/random (if - input file), écrites dans Fichier.txt (of
- output file) et sont constituées de 1024 bloc (count) de taille 1024 (bs).
- time java Toto argument1 argument2
Mesure et affiche le temps d'exécution de la commande java Toto argument1
argument2. Les temps donnés sont le temps total, ainsi que les temps durant lesquels le processus
a eu le processeur à sa disposition en mode utilisateur (user) et en mode noyau (system).