Professional Documents
Culture Documents
Programmation Structurée
420‐168‐SH
GRI2
GROUPE 3
LECTURE-ECRITURE
DANS UN FICHIER
Travail à Présenté à:
Mme Songoti
Préparé par :
♣ NAMALKA Oumarou
♣ MAIKOREMA Abdoulkarim
♣ NOUHOU Kakale
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
Sommaire
I INTRODUCTION ............................................................................................................................... 3
II FICHIER .............................................................................................................................................. 4
2 Type d’accès ..................................................................................................................................... 5
1-java.io ............................................................................................................................................... 6
2 La classe java.lang.System ............................................................................................................... 7
3classe file ........................................................................................................................................... 7
IV CAS PRATIQUE .............................................................................................................................. 8
EXEMPLE1 .................................................................................................................................... 8
EXEMPLE 2 ................................................................................................................................... 9
V CONCLUSION ................................................................................................................................. 11
VI WEBOGRAPHIE ............................................................................................................................. 12
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
I INTRODUCTION
Le langage de programmation java fournit un ensemble de classe permettant de lire ou
d’écrire dans un fichier .nous étudierons dans ce document la classe entrée sortie qui nous
permettra de lire ou d’écrire dans un fichier.
La deuxième partie nous explique les notions d’entrée sortie (IO) en java, les
différentes classes java.io, la lecture dans un fichier et l’écriture dans un fichier.
La troisième partie est entièrement consacrée à la création d’un programme qui lit les
fichiers.
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
II FICHIER
Les fichiers sont des structures des données stockés sur un disque. A la différence des
données gérées en mémoire par les programmes (entiers, booleans, tableaux, chaines
etc.….)qui sont perdues a la fin du programme.
Au niveau physique un fichier est composé d’une suite de blocs disque de taille constante
gérée par le système d’exploitation qui offre au programme une vue logique du fichier
Au niveau logique un fichier est une suite d’octet qui représente des informations de
différents types : tableaux, entiers, nombres reels, boolean, objet.
Java offre une large palette de classe et méthode pour utiliser les fichiers .toutes ses classes se
trouvent dans le paquetage java.io.
Son avantage est qu’il occupe moins d’espace mémoire, parc qu’il y’a aucun espace perdu.
Mais il possède un inconvénient majeur, qui est la lenteur d’accès.
Exemple :
"karim";"maikorema";0022790984578;"k.maikorema@etu.epn.ne"
"nouhou";"kakale";002279090987;"n.kakale@etu.epn.ne"
A l’inverse de la première structure, elle est gourmande en mémoire puisque les fichiers
possède plein de trou .mais présente un accès rapide.
Exemple :
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
2 Type d’accès
L’organisation des données au sein du fichier s’effectue selon deux grands choix stratégiques.
Mais il existe une autre ligne de partage des fichiers : le type d’accès, autrement dit la manière
dont la machine va pouvoir aller rechercher les enregistrements.
Le choix du type d’accès n’est pas un choix qui concerne le fichier lui-même, mais
uniquement la manière dont il va être traité par la machine. C’est donc dans le programme, et
seulement dans le programme, que l’on choisit le type d’accès souhaité.
On distingue :
I l est clair que l’accès direct possède tous les avantages et aucun inconvénient. Sa
programmation est immensément plus simple et moins fastidieuse que celle de l’accès
séquentiel. Mas le gros problème de l’accès direct, c’est qu’il n’est pas géré de la même
manière selon le type de machine
’Accès séquentiel, est entièrement piloté par le langage lui-même. Il est donc laborieux à
programmer, offre une sécurité absolue de portabilité. la plupart des programmeurs
s’astreignent encore à utiliser ce type d’accès.
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
III ENTREE SORTIE
Les entrées sortie permettent la communication du programme avec les périphériques,
un programme a souvent besoin d’importer une information depuis une source externe ou
d’exporter de l’information vers une destination externe .cette dernière peut être dans un
fichier, sur un disque dur, en mémoire, ou dans un autre programme . En Java, les entrées
sorties sont réalisées par l'intermédiaire de la librairie standard java.io
1-java.io
Java fournit un ensemble de classe permettant de lire et d'écrire dans des fichiers. Ces classes
sont regroupées dans un package. Pour les fichiers, il s'agit du package java.io. Pour utiliser
les classes d'un package, il faut l'"importer", en utilisant, au début du fichier .java, le mot-clé
import, suivi du nom du package, puis d'un point et d'une étoile. Ainsi, pour importer les
classes du package java.io, on commence le fichier par: import java.io.*
Le paquetage java.io contient plus de 40 classes;
Les classes les plus importantes pour traiter les flux d'entrées sont:
Les classes les plus importantes pour traiter les flux de sortie sont:
• OutputStream: super-classe (abstraite) pour les l'écriture sur des flux de sortie;
• OutputStreamWriter: classe qui agit comme une passerelle en encodant un flux de
caractères sous la forme d'un flux d'octets;
• DataOutputStream: classe permettant d'écrire des fichiers binaires en utilisant les types
primitifs de Java;
• BufferedOutputStream: classe qui permet d'alimenter un flux de sortie en passant par
un tampon;
• BufferedWriter: classe permettant d'écrire des chaînes de caractères dans un flux;
• FileOutputStream: classe permettant d'écrire des fichiers de données quelconques;
• FileWriter: classe permettant d'écrire des fichiers de texte;
• PrintStream: classe obsolète, remplacée par PrintWriter;
• PrintWriter: classe qui permet d'écrire les valeurs des types primitifs sous forme de
chaînes de caractères sur un flux de sortie;
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
2 La classe java.lang.System
Elle possède trois flux standards de caractères:
• public static final InputStream in : représente un flux d'entrée standard déjà ouvert, en
général le clavier;
• public static final PrintStream out : représente un flux de sortie standard déjà ouvert,
en générale une console ou une fenêtre simulant une console;
• public static final PrintStream err : représente un flux de sortie standard déjà ouvert
pour les messages d'erreurs; il est parfois identique à out.
3classe file
Une fois le fichier ouvert, on utilise l'objet ainsi créé pour lire des caractères dans le fichier,
grâce à la méthode read() de la classe FileReader. Attention cependant cette méthode ne
renvoie pas un caractère, mais un entier qui correspond au code du caractère ou bien la valeur
-1 si on a atteint la fin du fichier. Il faut donc stocker le code du caractère lu dans un entier,
testé si l'entier vaut ou pas -1, puis le convertir en caractère, grâce à la conversion (char). Le
code suivant utilise l'objet créé ci-dessus pour lire un caractère dans le fichier toto.txt et
l'afficher à l'écran, sauf si on a atteint la fin du fichier:
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
IV CAS PRATIQUE
EXEMPLE1
import java.io.*;
import java.util.*;
class EcritureFichier{
String nomFichier ;
nomFichier = src.next();
FileWriter fw=null;
BufferedWriter bw=null;
PrintWriter pw=null;
try{
fw=new FileWriter(nomFichier,true);
pw=new PrintWriter(bw);
pw.write("BONJOUR ");
pw.write("PRESENTE ");
bw.newLine();
GROUPE 3 :NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
}catch(IOException e){
}finally{
pw.close();
EXEMPLE 2
import java.io.*;
import java.util.*;
class LectureFichier{
String nomFichier="pratique.txt" ;
nomFichier = src.nextLine();
try{
String ligne=br.readLine();
while(ligne!=null){
System.out.println(ligne);
ligne=br.readLine();
GROUPE 3 :NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
br.close();
}catch(FileNotFoundException e){
catch(IOException e){
GROUPE 3 :NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
V CONCLUSION
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE
ECOLE POLYTECHNIQUE DE NIAMEY
VI WEBOGRAPHIE
Les sites web suivants ont été consultés pour la conception de ce document.
http://www.netalya.com/fr/Algo‐intro.asp
http://www.iro.umontreal.ca/~dift1020/cours/ift1020/communs/Cours/C13/iojava.pdf
http://www710.univ‐lyon1.fr/~ecoquery/enseignement/java/es_java.html
http://anisfrikha.developpez.com/tutoriel/java‐io/
GROUPE 3 : NAMALKA OMAR ‐KARIM MAIKOREMA‐NOUHOU KAKALE